mirror of
https://github.com/goharbor/harbor.git
synced 2024-12-22 16:48:30 +01:00
Add nightly test case of push docker manifest list
1. Add notary tool in E2E Dockerfile; 2. Add push docker manifest list test in nightly; 3. Modify document for e2e user guide; 4. Add CNAB tool in E2E Dockerfile; Signed-off-by: danfengliu <danfengl@vmware.com>
This commit is contained in:
parent
ceded08507
commit
8f9822d168
@ -20,12 +20,12 @@ Before scripting, please make sure swagger client has been made by "make swagger
|
||||
|
||||
We use $HARBORCLIENT_PATH represent the path of "harborclient" you've made by "make swagger_client".
|
||||
|
||||
Deploy Harbor instance for testing, and we will use $HARBOR_URL to represent the deployed Harbor in this document.
|
||||
Deploy Harbor instance for testing, and we will use $HARBOR_IP_ADDR to represent the deployed Harbor in this document.
|
||||
|
||||
Harbor E2E API test scripts will import python library under archive "harborclient", please set OS environment variant for Harbor E2E API test scripts:
|
||||
|
||||
|
||||
1. `export HARBOR_HOST=$HARBOR_URL`
|
||||
1. `export HARBOR_HOST=$HARBOR_IP_ADDR`
|
||||
2. `export SWAGGER_CLIENT_PATH=$HARBORCLIENT_PATH`
|
||||
|
||||
Until now, we have all preparation work done.
|
||||
|
@ -85,6 +85,10 @@ RUN wget https://get.helm.sh/helm-v3.0.0-linux-386.tar.gz && tar zxvf helm-v3.0.
|
||||
mv linux-386/helm /usr/local/bin/helm3 && \
|
||||
helm3 plugin install https://github.com/chartmuseum/helm-push
|
||||
|
||||
RUN wget https://github.com/theupdateframework/notary/releases/download/v0.6.1/notary-Linux-amd64 && \
|
||||
chmod +x notary-Linux-amd64 && \
|
||||
mv notary-Linux-amd64 /usr/local/bin/notary
|
||||
|
||||
RUN wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz && \
|
||||
tar xfvz tcl8.4.11-src.tar.gz && \
|
||||
cd tcl8.4.11/unix && \
|
||||
@ -105,6 +109,12 @@ RUN wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz &&
|
||||
cd /ixdba.net/bin && \
|
||||
mv expect /usr/local/bin/expect
|
||||
|
||||
RUN CNAB_PATH=$(go env GOPATH)/src/github.com/docker && mkdir -p $CNAB_PATH && cd $CNAB_PATH && git clone https://github.com/cnabio/cnab-to-oci.git && \
|
||||
cd cnab-to-oci && git checkout v0.3.0-beta4 && \
|
||||
go list && \
|
||||
make build && \
|
||||
mv bin/cnab-to-oci /usr/local/bin
|
||||
|
||||
# Add docker in docker support
|
||||
# version: docker:1.13-dind
|
||||
# reference: https://github.com/docker-library/docker/blob/b202ec7e529f5426e2ad7e8c0a8b82cacd406573/1.13/dind/Dockerfile
|
||||
|
25
tests/resources/CNAB_Util.robot
Normal file
25
tests/resources/CNAB_Util.robot
Normal file
@ -0,0 +1,25 @@
|
||||
# Copyright Project Harbor Authors
|
||||
#
|
||||
# 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
|
||||
|
||||
*** Settings ***
|
||||
Documentation This resource provides helper functions for docker operations
|
||||
Library OperatingSystem
|
||||
Library Process
|
||||
|
||||
*** Keywords ***
|
||||
CNAB Push Bundle
|
||||
[Arguments] ${ip} ${user} ${pwd} ${target} ${bundle_file}
|
||||
${rc} ${output}= Run And Return Rc And Output ./tests/robot-cases/Group0-Util/cnab_push_bundle.sh ${ip} ${user} ${pwd} ${target} ${bundle_file}
|
||||
Log ${output}
|
||||
Should Be Equal As Integers ${rc} 0
|
@ -107,6 +107,9 @@ Get Container IP
|
||||
# If you are running this keyword in a container, make sure it is run with --privileged turned on
|
||||
Start Docker Daemon Locally
|
||||
${pid}= Run pidof dockerd
|
||||
#${rc} ${output}= Run And Return Rc And Output ./tests/robot-cases/Group0-Util/docker_config.sh
|
||||
#Log ${output}
|
||||
#Should Be Equal As Integers ${rc} 0
|
||||
Return From Keyword If '${pid}' != '${EMPTY}'
|
||||
OperatingSystem.File Should Exist /usr/local/bin/dockerd-entrypoint.sh
|
||||
${handle}= Start Process /usr/local/bin/dockerd-entrypoint.sh dockerd>./daemon-local.log 2>&1 shell=True
|
||||
@ -122,6 +125,8 @@ Prepare Docker Cert
|
||||
[Arguments] ${ip}
|
||||
Wait Unitl Command Success mkdir -p /etc/docker/certs.d/${ip}
|
||||
Wait Unitl Command Success cp harbor_ca.crt /etc/docker/certs.d/${ip}
|
||||
Wait Unitl Command Success cp harbor_ca.crt /usr/local/share/ca-certificates/
|
||||
Wait Unitl Command Success update-ca-certificates
|
||||
|
||||
Kill Local Docker Daemon
|
||||
[Arguments] ${handle} ${dockerd-pid}
|
||||
@ -154,3 +159,9 @@ Docker Tag
|
||||
Docker Push
|
||||
[Arguments] ${image}
|
||||
Wait Unitl Command Success docker push ${image}
|
||||
|
||||
Docker Push Index
|
||||
[Arguments] ${ip} ${user} ${pwd} ${index} ${image1} ${image2}
|
||||
${rc} ${output}= Run And Return Rc And Output ./tests/robot-cases/Group0-Util/docker_push_manifest_list.sh ${ip} ${user} ${pwd} ${index} ${image1} ${image2}
|
||||
Log ${output}
|
||||
Should Be Equal As Integers ${rc} 0
|
||||
|
@ -19,4 +19,6 @@ Documentation This resource provides any keywords related to the Harbor private
|
||||
${artifact_action_xpath} //clr-dg-action-bar/clr-dropdown/span[contains(@class,'dropdown-toggle')]
|
||||
${artifact_action_delete_xpath} //clr-dropdown-menu//div[contains(.,'Delete')]
|
||||
${artifact_action_copy_xpath} //clr-dropdown-menu//div[contains(.,'Copy') and @aria-label='retag']
|
||||
${artifact_achieve_icon} //artifact-list-tab//clr-datagrid//clr-dg-row[contains(.,'sha256')]//clr-dg-cell[1]//clr-tooltip//clr-icon
|
||||
${artifact_rows} //artifact-list-tab//clr-datagrid//clr-dg-row[contains(.,'sha256')]
|
||||
|
||||
|
@ -210,6 +210,9 @@ Go Into Repo
|
||||
Retry Wait Element ${tag_table_column_size}
|
||||
Capture Page Screenshot gointo_${repoName}.png
|
||||
|
||||
Go Into Index
|
||||
Retry Wait Element ${artifact_achieve_icon}
|
||||
|
||||
Switch To CardView
|
||||
Retry Element Click xpath=//hbr-repository-gridview//span[@class='card-btn']/clr-icon
|
||||
Sleep 5
|
||||
|
@ -69,6 +69,7 @@ Resource Harbor-Pages/OIDC_Auth.robot
|
||||
Resource Harbor-Pages/OIDC_Auth_Elements.robot
|
||||
Resource Harbor-Pages/Verify.robot
|
||||
Resource Docker-Util.robot
|
||||
Resource CNAB_Util.robot
|
||||
Resource Helm-Util.robot
|
||||
Resource OVA-Util.robot
|
||||
Resource Cert-Util.robot
|
||||
|
1
tests/robot-cases/Group0-Util/bundle.json
Normal file
1
tests/robot-cases/Group0-Util/bundle.json
Normal file
@ -0,0 +1 @@
|
||||
{"actions":{"io.cnab.status":{}},"definitions":{"port":{"default":"8080","type":"string"},"text":{"default":"Hello, World!","type":"string"}},"description":"Hello, World!","images":{"hello":{"contentDigest":"sha256:61d5cb94d7e546518a7bbd5bee06bfad0ecea8f56a75b084522a43dccbbcd845","description":"hello","image":"redis","imageType":"docker","mediaType":"application/vnd.docker.distribution.manifest.v2+json","size":528}},"invocationImages":[{"contentDigest":"sha256:61d5cb94d7e546518a7bbd5bee06bfad0ecea8f56a75b084522a43dccbbcd845","image":"busybox","imageType":"docker","mediaType":"application/vnd.docker.distribution.manifest.v2+json","size":941}],"maintainers":[{"email":"user@email.com","name":"user"}],"name":"hello-world","parameters":{"fields":{"definition":"","destination":null}},"schemaVersion":"v1.0.0","version":"0.1.0"}
|
12
tests/robot-cases/Group0-Util/cnab_push_bundle.sh
Executable file
12
tests/robot-cases/Group0-Util/cnab_push_bundle.sh
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
IP=$1
|
||||
USER=$2
|
||||
PWD=$3
|
||||
TARGET=$4
|
||||
BUNDLE_FILE=$5
|
||||
echo $IP
|
||||
|
||||
docker login $IP -u $USER -p $PWD
|
||||
cnab-to-oci fixup $BUNDLE_FILE --target $TARGET --bundle fixup_bundle.json --auto-update-bundle
|
||||
cnab-to-oci push fixup_bundle.json --target $TARGET --auto-update-bundle
|
22
tests/robot-cases/Group0-Util/docker_push_manifest_list.sh
Executable file
22
tests/robot-cases/Group0-Util/docker_push_manifest_list.sh
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
IP=$1
|
||||
USER=$2
|
||||
PWD=$3
|
||||
INDEX=$4
|
||||
IMAGE1=$5
|
||||
IMAGE2=$6
|
||||
echo $IP
|
||||
|
||||
docker login $IP -u $USER -p $PWD
|
||||
|
||||
cat /$HOME/.docker/config.json
|
||||
|
||||
sed -i '$d' /$HOME/.docker/config.json
|
||||
sed -i '$d' /$HOME/.docker/config.json
|
||||
echo -e "\n },\n \"experimental\": \"enabled\"\n}" >> /$HOME/.docker/config.json
|
||||
|
||||
cat /$HOME/.docker/config.json
|
||||
|
||||
docker manifest create $INDEX $IMAGE1 $IMAGE2
|
||||
docker manifest push $INDEX
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user