@@ -43,7 +43,11 @@ export BOSKOS_RESOURCE_OWNER=cluster-api-provider-vsphere
4343if [[ " ${JOB_NAME} " != " " ]]; then
4444 export BOSKOS_RESOURCE_OWNER=" ${JOB_NAME} /${BUILD_ID} "
4545fi
46- export BOSKOS_RESOURCE_TYPE=vsphere-project-cluster-api-provider
46+ export BOSKOS_RESOURCE_TYPE=" gcve-vsphere-project"
47+ # Fallback for mirror-prow.
48+ if [[ " ${GOVC_URL:- } " == " 10.2.224.4" ]]; then
49+ BOSKOS_RESOURCE_TYPE=vsphere-project-cluster-api-provider
50+ fi
4751
4852on_exit () {
4953 # Only handle Boskos when we have to (not for vcsim)
@@ -55,11 +59,6 @@ on_exit() {
5559 [ -z " ${BOSKOS_HOST:- } " ] || docker run -e VSPHERE_USERNAME -e VSPHERE_PASSWORD gcr.io/k8s-staging-capi-vsphere/extra/boskosctl:latest release --boskos-host=" ${BOSKOS_HOST} " --resource-owner=" ${BOSKOS_RESOURCE_OWNER} " --resource-name=" ${BOSKOS_RESOURCE_NAME} " --vsphere-server=" ${VSPHERE_SERVER} " --vsphere-tls-thumbprint=" ${VSPHERE_TLS_THUMBPRINT} " --vsphere-folder=" ${BOSKOS_RESOURCE_FOLDER} " --vsphere-resource-pool=" ${BOSKOS_RESOURCE_POOL} "
5660 fi
5761
58- # kill the VPN only when we started it (not vcsim)
59- if [[ ! " ${GINKGO_FOCUS:- } " =~ $RE_VCSIM ]]; then
60- docker kill vpn
61- fi
62-
6362 # Cleanup VSPHERE_PASSWORD from temporary artifacts directory.
6463 if [[ " ${ORIGINAL_ARTIFACTS} " != " " ]]; then
6564 # Delete non-text files from artifacts directory to not leak files accidentially
@@ -91,47 +90,43 @@ on_exit() {
9190
9291trap on_exit EXIT
9392
94- # NOTE: when running on CI without presets, value for variables are missing: GOVC_URL, GOVC_USERNAME, GOVC_PASSWORD, VM_SSH_PUB_KEY),
93+ # Sanitize input envvars to not contain newline
94+ GOVC_USERNAME=$( echo " ${GOVC_USERNAME:- } " | tr -d " \n" )
95+ GOVC_PASSWORD=$( echo " ${GOVC_PASSWORD:- } " | tr -d " \n" )
96+ GOVC_URL=$( echo " ${GOVC_URL:- } " | tr -d " \n" )
97+ VSPHERE_TLS_THUMBPRINT=$( echo " ${VSPHERE_TLS_THUMBPRINT:- } " | tr -d " \n" )
98+ BOSKOS_HOST=$( echo " ${BOSKOS_HOST:- } " | tr -d " \n" )
99+
100+ # NOTE: when running on CI without presets, value for variables are missing: GOVC_URL, GOVC_USERNAME, GOVC_PASSWORD),
95101# but this is not an issue when we are targeting vcsim (corresponding VSPHERE_ variables will be injected during test setup).
96102export VSPHERE_SERVER=" ${GOVC_URL:- } "
97103export VSPHERE_USERNAME=" ${GOVC_USERNAME:- } "
98104export VSPHERE_PASSWORD=" ${GOVC_PASSWORD:- } "
99- export VSPHERE_SSH_AUTHORIZED_KEY=" ${VM_SSH_PUB_KEY:- } "
100- export VSPHERE_SSH_PRIVATE_KEY=" /root/ssh/.private-key/private-key"
101105export E2E_CONF_FILE=" ${REPO_ROOT} /test/e2e/config/vsphere.yaml"
102106export E2E_CONF_OVERRIDE_FILE=" "
103107export E2E_VM_OPERATOR_VERSION=" ${VM_OPERATOR_VERSION:- v1.8.6-0-gde75746a} "
104108export DOCKER_IMAGE_TAR=" /tmp/images/image.tar"
105109export GC_KIND=" false"
106110
111+ SSH_KEY_DIR=$( mktemp -d)
112+ export VSPHERE_SSH_PRIVATE_KEY
113+ VSPHERE_SSH_PRIVATE_KEY=" ${SSH_KEY_DIR} /ssh-key"
114+ ssh-keygen -t ed25519 -f " ${VSPHERE_SSH_PRIVATE_KEY} " -N " "
115+ export VSPHERE_SSH_AUTHORIZED_KEY
116+ VSPHERE_SSH_AUTHORIZED_KEY=" $( cat " ${VSPHERE_SSH_PRIVATE_KEY} .pub" ) "
117+
118+ # Fallback for mirror-prow.
119+ if [[ " ${GOVC_URL:- } " == " 10.2.224.4" ]]; then
120+ VSPHERE_SSH_AUTHORIZED_KEY=" ${VM_SSH_PUB_KEY:- } "
121+ VSPHERE_SSH_PRIVATE_KEY=" /root/ssh/.private-key/private-key"
122+ E2E_CONF_OVERRIDE_FILE=" $( pwd) /test/e2e/config/config-overrides-mirror-prow.yaml"
123+ fi
124+
107125# Make tests run in-parallel
108126export GINKGO_NODES=5
109127
110- # Only run the vpn /check for IPAM when we need them (not for vcsim)
128+ # Only run the boskos /check for IPAM when we need them (not for vcsim)
111129if [[ ! " ${GINKGO_FOCUS:- } " =~ $RE_VCSIM ]]; then
112- # Run the vpn client in container
113- docker run --rm -d --name vpn -v " ${HOME} /.openvpn/:${HOME} /.openvpn/" \
114- -w " ${HOME} /.openvpn/" --cap-add=NET_ADMIN --net=host --device=/dev/net/tun \
115- gcr.io/k8s-staging-capi-vsphere/extra/openvpn:latest
116-
117- # Tail the vpn logs
118- docker logs vpn
119-
120- # Wait until the VPN connection is active.
121- function wait_for_vpn_up() {
122- local n=0
123- until [ $n -ge 30 ]; do
124- curl " https://${VSPHERE_SERVER} " --connect-timeout 2 -k && RET=$? || RET=$?
125- if [[ " $RET " -eq 0 ]]; then
126- break
127- fi
128- n=$(( n + 1 ))
129- sleep 1
130- done
131- return " $RET "
132- }
133- wait_for_vpn_up
134-
135130 # If BOSKOS_HOST is set then acquire a vsphere-project from Boskos.
136131 if [ -n " ${BOSKOS_HOST:- } " ]; then
137132 # Check out the account from Boskos and store the produced environment
0 commit comments