diff options
author | Alexis de Talhouët <adetalhouet89@gmail.com> | 2019-04-12 18:49:29 -0400 |
---|---|---|
committer | Alexis de Talhouët <adetalhouet89@gmail.com> | 2019-04-16 10:38:51 -0400 |
commit | 50f466c54d1445e667b649d4731aa48d3aa76704 (patch) | |
tree | df2c3b9e0af9447af26ad353e8ce54a7e9a3657e /ms/command-executor | |
parent | b93bdeef411a1593060852da641475a65b3e9f64 (diff) |
Add Command executor maven module and Dockerfile
Change-Id: Iea3d14854e837fede441330ad34b35ac9d156f9a
Issue-ID: CCSDK-1164
Signed-off-by: Alexis de Talhouët <adetalhouet89@gmail.com>
Diffstat (limited to 'ms/command-executor')
-rwxr-xr-x | ms/command-executor/pom.xml | 155 | ||||
-rw-r--r-- | ms/command-executor/src/main/docker/Dockerfile | 19 | ||||
-rwxr-xr-x | ms/command-executor/src/main/docker/distribution.xml | 31 | ||||
-rwxr-xr-x | ms/command-executor/src/main/docker/start.sh | 32 |
4 files changed, 237 insertions, 0 deletions
diff --git a/ms/command-executor/pom.xml b/ms/command-executor/pom.xml new file mode 100755 index 000000000..903ccdcaf --- /dev/null +++ b/ms/command-executor/pom.xml @@ -0,0 +1,155 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright © 2019 Bell Canada. + ~ + ~ 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. + --> +<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.ccsdk.cds</groupId> + <artifactId>ms</artifactId> + <version>0.4.2-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + <artifactId>command-executor</artifactId> + <packaging>pom</packaging> + <name>Command Executor</name> + <description>Micro-service providing python environment with gRPC binding for command execution</description> + + <properties> + <assembly.id>maven</assembly.id> + <image.name>onap/ccsdk-commandexecutor</image.name> + <docker.buildArg.https_proxy>${https_proxy}</docker.buildArg.https_proxy> + <docker.push.phase>deploy</docker.push.phase> + <docker.verbose>true</docker.verbose> + <ccsdk.project.version>${project.version}</ccsdk.project.version> + <ccsdk.build.timestamp>${maven.build.timestamp}</ccsdk.build.timestamp> + </properties> + + <build> + <plugins> + <plugin> + <artifactId>maven-resources-plugin</artifactId> + <version>2.6</version> + <executions> + <execution> + <id>copy-dockerfile</id> + <goals> + <goal>copy-resources</goal> + </goals> + <phase>validate</phase> + <configuration> + <outputDirectory>${basedir}/target/docker-stage</outputDirectory> + <resources> + <resource> + <directory>src/main/docker</directory> + <includes> + <include>Dockerfile</include> + <include>start.sh</include> + </includes> + <filtering>true</filtering> + </resource> + </resources> + </configuration> + </execution> + </executions> + </plugin> + <!--<plugin>--> + <!--<artifactId>maven-assembly-plugin</artifactId>--> + <!--<version>3.1.0</version>--> + <!--<configuration>--> + <!--<outputDirectory>${basedir}/target/docker-stage</outputDirectory>--> + <!--<descriptors>--> + <!--<descriptor>src/main/docker/distribution.xml</descriptor>--> + <!--</descriptors>--> + <!--<tarLongFileMode>posix</tarLongFileMode>--> + <!--</configuration>--> + <!--<executions>--> + <!--<execution>--> + <!--<id>${assembly.id}</id>--> + <!--<phase>package</phase>--> + <!--<goals>--> + <!--<goal>single</goal>--> + <!--</goals>--> + <!--</execution>--> + <!--</executions>--> + <!--</plugin>--> + <plugin> + <groupId>org.codehaus.groovy.maven</groupId> + <artifactId>gmaven-plugin</artifactId> + <version>1.0</version> + <executions> + <execution> + <phase>validate</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <source>${basedir}/../../TagVersion.groovy</source> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + + <profiles> + <profile> + <id>docker</id> + <build> + <plugins> + <plugin> + <groupId>io.fabric8</groupId> + <artifactId>docker-maven-plugin</artifactId> + <version>0.26.1</version> + <inherited>false</inherited> + <configuration> + <images> + <image> + <name>${image.name}</name> + <build> + <cleanup>try</cleanup> + <dockerFileDir>${basedir}/target/docker-stage</dockerFileDir> + <tags> + <tag>${project.docker.latestfulltag.version}</tag> + </tags> + </build> + </image> + </images> + <verbose>true</verbose> + </configuration> + <executions> + <execution> + <id>generate-images</id> + <phase>package</phase> + <goals> + <goal>build</goal> + </goals> + </execution> + <execution> + <id>push-images</id> + <phase>${docker.push.phase}</phase> + <goals> + <goal>build</goal> + <goal>push</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> +</project> diff --git a/ms/command-executor/src/main/docker/Dockerfile b/ms/command-executor/src/main/docker/Dockerfile new file mode 100644 index 000000000..cac2b958b --- /dev/null +++ b/ms/command-executor/src/main/docker/Dockerfile @@ -0,0 +1,19 @@ +FROM python:3.6-slim + +ENV GRPC_PYTHON_VERSION 1.19.0 +RUN python -m pip install --upgrade pip +RUN pip install grpcio==${GRPC_PYTHON_VERSION} grpcio-tools==${GRPC_PYTHON_VERSION} +RUN pip install virtualenv + +RUN mkdir -p /opt/onap/blueprints && mkdir -p /opt/onap/app/python && chmod -R 777 /opt/onap + +COPY start.sh /opt/onap/app/start.sh +RUN chmod u+x /opt/onap/app/start.sh + +COPY @project.build.finalName@-@assembly.id@.tar.gz /source.tar.gz +RUN tar -xzf /source.tar.gz -C /tmp \ + && cp -rf /tmp/@project.build.finalName@/opt / \ + && rm -rf /source.tar.gz \ + && rm -rf /tmp/@project.build.finalName@ + +ENTRYPOINT /opt/onap/app/start.sh
\ No newline at end of file diff --git a/ms/command-executor/src/main/docker/distribution.xml b/ms/command-executor/src/main/docker/distribution.xml new file mode 100755 index 000000000..e4ac2f85d --- /dev/null +++ b/ms/command-executor/src/main/docker/distribution.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright © 2019 Bell Canada. + ~ + ~ 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. + --> + +<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd"> + <id>${assembly.id}</id> + <formats> + <format>tar.gz</format> + </formats> + <fileSets> + <fileSet> + <directory>${project.basedir}/src/main/python</directory> + <outputDirectory>/opt/onap/app/python</outputDirectory> + </fileSet> + </fileSets> +</assembly>
\ No newline at end of file diff --git a/ms/command-executor/src/main/docker/start.sh b/ms/command-executor/src/main/docker/start.sh new file mode 100755 index 000000000..6c0aa0018 --- /dev/null +++ b/ms/command-executor/src/main/docker/start.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +# +# Copyright (C) 2019 Bell Canada. +# +# 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. +# + +if [ -z "${APP_PORT}" ] +then + echo "APP_PORT environment variable is not set, using default." + export APP_PORT=50051 +fi + +if [ -z "${BASIC_AUTH}" ] +then + echo "BASIC_AUTH environment variable is not set, using default." + export BASIC_AUTH="Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==" +fi + +cd /opt/onap/app/python/ +python command_executor_server.py ${APP_PORT} ${BASIC_AUTH}
\ No newline at end of file |