summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xdocker_push_manifest.sh59
-rw-r--r--packages/policy-pap-docker/pom.xml18
2 files changed, 71 insertions, 6 deletions
diff --git a/docker_push_manifest.sh b/docker_push_manifest.sh
new file mode 100755
index 00000000..e41069cc
--- /dev/null
+++ b/docker_push_manifest.sh
@@ -0,0 +1,59 @@
+#!/bin/bash -ex
+# ============LICENSE_START=======================================================
+# Copyright (C) 2019 ENEA AB. All rights reserved.
+# Modifications Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# 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=========================================================
+
+# This script creates the multi-arch manifest for the docker images
+
+source version.properties
+IMAGES="onap/policy-pap"
+ARCHES="amd64 arm64"
+TIMESTAMP=$(date -u +"%Y%m%d%H%M%S")
+MT_RELEASE='v0.9.0'
+
+# Download the manifest tool based on the host's architecture
+HOST_ARCH='amd64'
+if [ "$(uname -m)" == 'aarch64' ]; then
+ HOST_ARCH='arm64'
+fi
+wget https://github.com/estesp/manifest-tool/releases/download/${MT_RELEASE}/manifest-tool-linux-${HOST_ARCH} -O ./manifest-tool
+chmod u+x manifest-tool
+
+# Tag the images and push the manifest (do not fail if some prerequisite tags are not yet present)
+set +e
+for image in ${IMAGES}; do
+ # always (re)create both SNAPSHOT and STAGING tags to make sure everything is up to date
+ TAGS="latest ${release_version}-SNAPSHOT ${release_version}-SNAPSHOT-latest ${release_version}-STAGING-latest"
+ for tag in ${TAGS}; do
+ ./manifest-tool push from-args \
+ --ignore-missing \
+ --platforms "linux/${ARCHES// /,linux/}" \
+ --template "${image}:${tag}-ARCH" \
+ --target "${image}:${tag}"
+ done
+
+ # Create timestamped multiarch tag; if the script is ran from the merge
+ # job then add the SNAPSHOT suffix
+ [[ "${PARENT_JOB_NAME}" =~ merge ]] && snapshot_suffix="SNAPSHOT-"
+
+ ./manifest-tool push from-args \
+ --ignore-missing \
+ --platforms "linux/${ARCHES// /,linux/}" \
+ --template "${image}:${release_version}-${snapshot_suffix:-}ARCH" \
+ --target "${image}:${release_version}-${snapshot_suffix:-}${TIMESTAMP}"
+done
diff --git a/packages/policy-pap-docker/pom.xml b/packages/policy-pap-docker/pom.xml
index 0615cf2b..2b5cd2ab 100644
--- a/packages/policy-pap-docker/pom.xml
+++ b/packages/policy-pap-docker/pom.xml
@@ -41,8 +41,8 @@
<docker.skip>false</docker.skip>
<docker.skip.build>false</docker.skip.build>
<docker.skip.push>false</docker.skip.push>
- <docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
- <docker.push.registry>nexus3.onap.org:10003</docker.push.registry>
+ <docker.pull.registry>docker.io</docker.pull.registry>
+ <docker.push.registry>docker.io</docker.push.registry>
<maven.build.timestamp.format>yyyyMMdd'T'HHmm</maven.build.timestamp.format>
</properties>
@@ -55,7 +55,7 @@
<version>1.0</version>
<executions>
<execution>
- <phase>validate</phase>
+ <phase>pre-clean</phase>
<goals>
<goal>execute</goal>
</goals>
@@ -74,6 +74,12 @@
}
println 'New tag for docker: ' + project.properties['project.docker.latest.minmax.tag.version']
}
+ if ( "aarch64".equals(System.properties['os.arch']) ) {
+ project.properties['project.docker.arch'] = "arm64";
+ } else {
+ project.properties['project.docker.arch'] = System.properties['os.arch'];
+ }
+ println 'Using arch for docker: ' + project.properties['project.docker.arch'];
</source>
</configuration>
</execution>
@@ -92,14 +98,14 @@
<images>
<image>
- <name>onap/policy-pap</name>
+ <name>onap/policy-pap:latest-${project.docker.arch}</name>
<build>
<cleanup>try</cleanup>
<dockerFile>Dockerfile</dockerFile>
<tags>
<tag>${project.version}</tag>
- <tag>${project.version}-${maven.build.timestamp}</tag>
- <tag>${project.docker.latest.minmax.tag.version}</tag>
+ <tag>${project.version}-${project.docker.arch}</tag>
+ <tag>${project.docker.latest.minmax.tag.version}-${project.docker.arch}</tag>
</tags>
<assembly>
<inline>