From 072f364d0b8e9dc9a0ecaedf7eda8f452ab7d3f7 Mon Sep 17 00:00:00 2001 From: danfengliu Date: Wed, 17 Mar 2021 22:33:02 +0800 Subject: [PATCH] Add manifest and CNAB replication tests 1. Add manifest and CNAB replication tests; 2. Duplicate ORAS and sigularity tests from API test to nightly common tests; 3. Optimize get dns code in CI; 4. Optimize E2E dockerfile; 5. Sample image size should be cover requirement for large size like 512M. Signed-off-by: danfengliu --- tests/resources/Docker-Util.robot | 1 + tests/resources/Harbor-Pages/Project.robot | 12 ++++++------ .../Harbor-Pages/Project_Elements.robot | 2 +- tests/resources/Harbor-Util.robot | 8 +------- tests/resources/Helm-Util.robot | 4 ++-- tests/resources/TestCaseBody.robot | 3 +-- .../Group0-Util/notary-push-image.sh | 17 ++++------------- tests/robot-cases/Group0-Util/notary-util.sh | 2 +- 8 files changed, 17 insertions(+), 32 deletions(-) diff --git a/tests/resources/Docker-Util.robot b/tests/resources/Docker-Util.robot index a45dad915..648fe5358 100644 --- a/tests/resources/Docker-Util.robot +++ b/tests/resources/Docker-Util.robot @@ -196,6 +196,7 @@ Restart Process Locally Prepare Docker Cert In Ubuntu [Arguments] ${ip} ${cert} + Wait Unitl Command Success rm -rf ~/.docker/ Wait Unitl Command Success mkdir -p /etc/docker/certs.d/${ip} Wait Unitl Command Success cp ${cert} /etc/docker/certs.d/${ip} Wait Unitl Command Success cp ${cert} /usr/local/share/ca-certificates/ diff --git a/tests/resources/Harbor-Pages/Project.robot b/tests/resources/Harbor-Pages/Project.robot index 23f2ab370..a3e0c4f9e 100644 --- a/tests/resources/Harbor-Pages/Project.robot +++ b/tests/resources/Harbor-Pages/Project.robot @@ -337,27 +337,27 @@ Retry Get Statics [Return] ${ret} Get Statics Private Repo - ${privaterepo}= Retry Get Statics //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[2]/div[2]/statistics/div/span[1] + ${privaterepo}= Retry Get Statics ${project_statistics_private_repository_icon} [Return] ${privaterepo} Get Statics Private Project - ${privateproj}= Retry Get Statics //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[2]/div[1]/statistics/div/span[1] + ${privateproj}= Retry Get Statics //projects/div/div/div[1]/div/statistics-panel/div/div[1]/div/div[1]/div[2] [Return] ${privateproj} Get Statics Public Repo - ${publicrepo}= Retry Get Statics //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[3]/div[2]/statistics/div/span[1] + ${publicrepo}= Retry Get Statics //projects/div/div/div[1]/div/statistics-panel/div/div[1]/div/div[2]/div[2] [Return] ${publicrepo} Get Statics Public Project - ${publicproj}= Retry Get Statics //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[3]/div[1]/statistics/div/span[1] + ${publicproj}= Retry Get Statics //projects/div/div/div[1]/div/statistics-panel/div/div[1]/div/div[2]/div[2] [Return] ${publicproj} Get Statics Total Repo - ${totalrepo}= Retry Get Statics //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[4]/div[2]/statistics/div/span[1] + ${totalrepo}= Retry Get Statics //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div/div[3]/div[2] [Return] ${totalrepo} Get Statics Total Project - ${totalproj}= Retry Get Statics //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[4]/div[1]/statistics/div/span[1] + ${totalproj}= Retry Get Statics //projects/div/div/div[1]/div/statistics-panel/div/div[1]/div/div[3]/div[2] [Return] ${totalproj} Input Count Quota diff --git a/tests/resources/Harbor-Pages/Project_Elements.robot b/tests/resources/Harbor-Pages/Project_Elements.robot index ce06f153c..5863b4720 100644 --- a/tests/resources/Harbor-Pages/Project_Elements.robot +++ b/tests/resources/Harbor-Pages/Project_Elements.robot @@ -34,7 +34,7 @@ ${project_tag_immutability_switch} //project-detail/app-tag-feature-integration ${create_project_CANCEL_button_xpath} xpath=//button[contains(.,'CANCEL')] ${create_project_OK_button_xpath} xpath=//button[contains(.,'OK')] ${delete_confirm_btn} xpath=//button[contains(.,'DELETE')] -${project_statistics_private_repository_icon} xpath=//projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[2]/div[2]/statistics/div/span[1] +${project_statistics_private_repository_icon} xpath=//projects/div/div/div[1]/div/statistics-panel/div/div[2]/div/div[1]/div[2] ${project_statistics_total_projects_icon} xpath=//div[contains(@class, 'statistic-column-block') and contains(., 'TOTAL')]//div[1]/statistics//span[contains(@class, 'statistic-data')] ${repo_delete_confirm_btn} xpath=//clr-modal//button[2] ${repo_retag_confirm_dlg} css=${modal-dialog} diff --git a/tests/resources/Harbor-Util.robot b/tests/resources/Harbor-Util.robot index b82266c05..7cbab2b7f 100644 --- a/tests/resources/Harbor-Util.robot +++ b/tests/resources/Harbor-Util.robot @@ -93,6 +93,7 @@ Switch To LDAP Get Harbor CA [Arguments] ${ip} ${cert} Log All Start to get harbor ca: ${ip} ${cert} + #In API E2E engine, store cert in path "/ca" Run Keyword If '${http_get_ca}' == 'false' Run Keywords ... Wait Unitl Command Success cp /ca/harbor_ca.crt ${cert} ... AND Return From Keyword @@ -102,13 +103,6 @@ Get Harbor CA Log All ${output} Should Be Equal As Integers ${rc} 0 -Enable Notary Client - ${rc} ${output}= Run And Return Rc And Output rm -rf ~/.docker/ - Log ${rc} - ${rc} ${output}= Run And Return Rc and Output curl -o /notary_ca.crt -s -k -X GET -u 'admin:Harbor12345' 'https://${ip}/api/v2.0/systeminfo/getcert' - Log ${output} - Should Be Equal As Integers ${rc} 0 - Notary Remove Signature [Arguments] ${ip} ${project} ${image} ${tag} ${user} ${pwd} ${rc} ${output}= Run And Return Rc And Output ./tests/robot-cases/Group0-Util/notary-util.sh remove ${ip} ${project} ${image} ${tag} ${notaryServerEndpoint} ${user} ${pwd} diff --git a/tests/resources/Helm-Util.robot b/tests/resources/Helm-Util.robot index d62b1e5a4..56309472f 100644 --- a/tests/resources/Helm-Util.robot +++ b/tests/resources/Helm-Util.robot @@ -27,14 +27,14 @@ Helm Repo Add [Arguments] ${harbor_url} ${user} ${pwd} ${project_name}=library ${helm_repo_name}=myrepo ${rc} ${output}= Run And Return Rc And Output helm repo remove ${project_name} Log To Console ${output} - Wait Unitl Command Success helm repo add --ca-file /ca/ca.crt --username=${user} --password=${pwd} ${helm_repo_name} ${harbor_url}/chartrepo/${project_name} + Wait Unitl Command Success helm repo add --username=${user} --password=${pwd} ${helm_repo_name} ${harbor_url}/chartrepo/${project_name} Helm Repo Push [Arguments] ${user} ${pwd} ${chart_filename} ${helm_repo_name}=myrepo ${helm_cmd}=helm ${current_dir}= Run pwd Run cd ${current_dir} Run wget ${harbor_chart_file_url} - Wait Unitl Command Success ${helm_cmd} push --ca-file=/ca/ca.crt --username=${user} --password=${pwd} ${chart_filename} ${helm_repo_name} + Wait Unitl Command Success ${helm_cmd} push --username=${user} --password=${pwd} ${chart_filename} ${helm_repo_name} Helm Chart Push [Arguments] ${ip} ${user} ${pwd} ${chart_file} ${archive} ${project} ${repo_name} ${verion} diff --git a/tests/resources/TestCaseBody.robot b/tests/resources/TestCaseBody.robot index 2a5e2704d..484426184 100644 --- a/tests/resources/TestCaseBody.robot +++ b/tests/resources/TestCaseBody.robot @@ -166,8 +166,7 @@ Body Of Push Signed Image Body Of Admin Push Signed Image [Arguments] ${project} ${image} ${tag} ${user} ${pwd} ${with_remove}=${false} - Enable Notary Client - + Wait Unitl Command Success rm -rf ~/.docker/ Docker Pull ${LOCAL_REGISTRY}/${LOCAL_REGISTRY_NAMESPACE}/${image} ${rc} ${output}= Run And Return Rc And Output ./tests/robot-cases/Group0-Util/notary-push-image.sh ${ip} ${project} ${image} ${tag} ${notaryServerEndpoint} ${LOCAL_REGISTRY}/${LOCAL_REGISTRY_NAMESPACE}/${image}:${tag} ${user} ${pwd} Clean All Local Images diff --git a/tests/robot-cases/Group0-Util/notary-push-image.sh b/tests/robot-cases/Group0-Util/notary-push-image.sh index 9dbdf786d..3ca3b7158 100755 --- a/tests/robot-cases/Group0-Util/notary-push-image.sh +++ b/tests/robot-cases/Group0-Util/notary-push-image.sh @@ -1,24 +1,15 @@ #!/bin/bash #docker pull $3:$4 +set -x IP=$1 -USER=$7 -PWD=$8 -PASSHRASE=$8 notaryServerEndpoint=$5 tag_src=$6 +USER=$7 +PASSHRASE=$8 echo $IP -mkdir -p /etc/docker/certs.d/$IP/ -mkdir -p ~/.docker/tls/$IP:4443/ - -cp /notary_ca.crt /etc/docker/certs.d/$IP/ -cp /notary_ca.crt ~/.docker/tls/$IP:4443/ - -mkdir -p ~/.docker/tls/$notaryServerEndpoint/ -cp /notary_ca.crt ~/.docker/tls/$notaryServerEndpoint/ - export DOCKER_CONTENT_TRUST=1 export DOCKER_CONTENT_TRUST_SERVER=https://$notaryServerEndpoint @@ -30,6 +21,6 @@ export DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE=$PASSHRASE export DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE=$PASSHRASE export DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE=$PASSHRASE -docker login -u $USER -p $PWD $IP +docker login -u $USER -p $PASSHRASE $IP docker tag $tag_src $IP/$2/$3:$4 docker push $IP/$2/$3:$4 diff --git a/tests/robot-cases/Group0-Util/notary-util.sh b/tests/robot-cases/Group0-Util/notary-util.sh index 900ad46ed..ca9d57620 100755 --- a/tests/robot-cases/Group0-Util/notary-util.sh +++ b/tests/robot-cases/Group0-Util/notary-util.sh @@ -23,7 +23,7 @@ export DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE=$PASSHRASE export NOTARY_AUTH=$(echo $USER:$PWD | base64) echo $USER:$PWD -NOTARY_CMD_OPTIONS="notary -s https://$NOTARY_SERVER_ENDPOINT --tlscacert /notary_ca.crt -d /root/.docker/trust" +NOTARY_CMD_OPTIONS="notary -s https://$NOTARY_SERVER_ENDPOINT -d ~/.docker/trust" if [ "$CMD" == "key_rotate" ]; then echo "$NOTARY_CMD_OPTIONS key rotate $HOST/$PROJECT/$IMAGE snapshot -r" $NOTARY_CMD_OPTIONS key rotate $HOST/$PROJECT/$IMAGE snapshot -r