@@ -38,49 +38,6 @@ def RESOURCE_OWNER = "longhorn-infra"
3838def TEST_TYPE = params. TEST_TYPE ? params. TEST_TYPE : " pytest"
3939def BLOCK_DEVICE_SIZE = params. TEST_TYPE == " robot" ? 80 : 40
4040
41- def envArgs
42- def vars = [
43- ' CUSTOM_LONGHORN_ENGINE_IMAGE' ,
44- ' CUSTOM_LONGHORN_INSTANCE_MANAGER_IMAGE' ,
45- ' CUSTOM_LONGHORN_MANAGER_IMAGE' ,
46- ' CUSTOM_LONGHORN_SHARE_MANAGER_IMAGE' ,
47- ' CUSTOM_LONGHORN_BACKING_IMAGE_MANAGER_IMAGE' ,
48- ' CUSTOM_LONGHORN_UI_IMAGE' ,
49- ' CUSTOM_LONGHORN_SUPPORT_BUNDLE_IMAGE' ,
50- ' CUSTOM_LONGHORN_CSI_ATTACHER_IMAGE' ,
51- ' CUSTOM_LONGHORN_CSI_PROVISIONER_IMAGE' ,
52- ' CUSTOM_LONGHORN_CSI_NODE_DRIVER_REGISTRAR_IMAGE' ,
53- ' CUSTOM_LONGHORN_CSI_RESIZER_IMAGE' ,
54- ' CUSTOM_LONGHORN_CSI_SNAPSHOTTER_IMAGE' ,
55- ' CUSTOM_LONGHORN_CSI_LIVENESSPROBE_IMAGE' ,
56- ' STABLE_MANAGER_IMAGE' ,
57- ' STABLE_ENGINE_IMAGE' ,
58- ' STABLE_INSTANCE_MANAGER_IMAGE' ,
59- ' STABLE_SHARE_MANAGER_IMAGE' ,
60- ' STABLE_BACKING_IMAGE_MANAGER_IMAGE' ,
61- ' STABLE_UI_IMAGE' ,
62- ' STABLE_SUPPORT_BUNDLE_IMAGE' ,
63- ' STABLE_CSI_ATTACHER_IMAGE' ,
64- ' STABLE_CSI_PROVISIONER_IMAGE' ,
65- ' STABLE_CSI_NODE_REGISTRAR_IMAGE' ,
66- ' STABLE_CSI_RESIZER_IMAGE' ,
67- ' STABLE_CSI_SNAPSHOTTER_IMAGE' ,
68- ' STABLE_CSI_LIVENESSPROBE_IMAGE' ,
69- ' TRANSIENT_MANAGER_IMAGE' ,
70- ' TRANSIENT_ENGINE_IMAGE' ,
71- ' TRANSIENT_INSTANCE_MANAGER_IMAGE' ,
72- ' TRANSIENT_SHARE_MANAGER_IMAGE' ,
73- ' TRANSIENT_BACKING_IMAGE_MANAGER_IMAGE' ,
74- ' TRANSIENT_UI_IMAGE' ,
75- ' TRANSIENT_SUPPORT_BUNDLE_IMAGE' ,
76- ' TRANSIENT_CSI_ATTACHER_IMAGE' ,
77- ' TRANSIENT_CSI_PROVISIONER_IMAGE' ,
78- ' TRANSIENT_CSI_NODE_REGISTRAR_IMAGE' ,
79- ' TRANSIENT_CSI_RESIZER_IMAGE' ,
80- ' TRANSIENT_CSI_SNAPSHOTTER_IMAGE' ,
81- ' TRANSIENT_CSI_LIVENESSPROBE_IMAGE'
82- ]
83-
8441node {
8542
8643 withCredentials([
9249 string(credentialsId : ' LAB_URL' , variable : ' LAB_URL' ),
9350 file(credentialsId : ' SUSE_INTERNAL_CA' , variable : ' CA_CERT_PATH' ), // Add the secret file credential here
9451 string(credentialsId : ' QASE_TOKEN' , variable : ' QASE_TOKEN' ),
52+ string(credentialsId : ' AWS_PRIVATE_ECR' , variable : ' AWS_PRIVATE_ECR' ),
9553 ]) {
9654
9755 if (params. SEND_SLACK_NOTIFICATION ) {
@@ -101,121 +59,6 @@ node {
10159 checkout scm
10260
10361 try {
104- stage (' fetch test images list' ) {
105- sh " cp ${ CA_CERT_PATH} ./SUSE_Trust_Root.crt"
106- sh " pipelines/appco/scripts/build.sh"
107- sh """ docker run -itd --name fetch-test-images-${ JOB_BASE_NAME} -${ BUILD_NUMBER} \
108- -v /var/run/docker.sock:/var/run/docker.sock \
109- --env TF_VAR_docker_hub_username="${ REGISTRY_USERNAME} " \
110- --env TF_VAR_docker_hub_password="${ REGISTRY_PASSWORD} " \
111- --env APPCO_USERNAME=${ APPCO_USERNAME} \
112- --env APPCO_PASSWORD=${ APPCO_PASSWORD} \
113- --dns=10.113.53.53 \
114- --dns=10.113.53.54 \
115- ${ imageName}
116- """
117-
118- sh """ docker exec \
119- --env LONGHORN_CHART_URI=${ LONGHORN_CHART_URI} \
120- --env LONGHORN_VERSION=${ LONGHORN_VERSION} \
121- --env APPCO_LONGHORN_COMPONENT_IMAGE_PATH=${ APPCO_LONGHORN_COMPONENT_IMAGE_PATH} \
122- --env LONGHORN_COMPONENT_TAG=${ LONGHORN_COMPONENT_TAG} \
123- --env CSI_ATTACHER_TAG=${ CSI_ATTACHER_TAG} \
124- --env CSI_PROVISIONER_TAG=${ CSI_PROVISIONER_TAG} \
125- --env CSI_RESIZER_TAG=${ CSI_RESIZER_TAG} \
126- --env CSI_SNAPSHOTTER_TAG=${ CSI_SNAPSHOTTER_TAG} \
127- --env CSI_LIVENESSPROBE_TAG=${ CSI_LIVENESSPROBE_TAG} \
128- --env CSI_REGISTRAR_TAG=${ CSI_REGISTRAR_TAG} \
129- --env SUPPORT_BUNDLE_TAG=${ SUPPORT_BUNDLE_TAG} \
130- --env LONGHORN_UPGRADE_TEST=${ LONGHORN_UPGRADE_TEST} \
131- --env LONGHORN_STABLE_VERSION=${ LONGHORN_STABLE_VERSION} \
132- --env LONGHORN_STABLE_VERSION_CHART_URI=${ LONGHORN_STABLE_VERSION_CHART_URI} \
133- --env LONGHORN_TRANSIENT_VERSION=${ LONGHORN_TRANSIENT_VERSION} \
134- --env LONGHORN_TRANSIENT_VERSION_CHART_URI=${ LONGHORN_TRANSIENT_VERSION_CHART_URI} \
135- fetch-test-images-${ JOB_BASE_NAME} -${ BUILD_NUMBER} \
136- bash -c './pipelines/appco/scripts/fetch_image_list.sh && source /tmp/longhorn_env_vars.sh && env'
137- """
138-
139- // Pull selected variables from inside the container back into Jenkins environment
140- vars. each { varName ->
141- def value = sh(
142- script : " docker exec fetch-test-images-${ JOB_BASE_NAME} -${ BUILD_NUMBER} bash -c 'source /tmp/longhorn_env_vars.sh && echo \$ $varName '" ,
143- returnStdout : true
144- ). trim()
145- env. " ${ varName} " = value
146- echo " ${ varName} = ${ value} "
147- }
148-
149- envArgs = vars. collect { key ->
150- def v = env. " ${ key} " ?: ' '
151- " --env ${ key} =${ v} "
152- }. join(" \\\n " )
153-
154-
155- sh " docker stop fetch-test-images-${ JOB_BASE_NAME} -${ BUILD_NUMBER} "
156- sh " docker rm -v fetch-test-images-${ JOB_BASE_NAME} -${ BUILD_NUMBER} "
157- sh " docker rmi ${ imageName} "
158-
159- return
160- }
161-
162- if (params. AIR_GAP_INSTALLATION ) {
163- stage(' private registry build' ) {
164- sh " airgap/scripts/build.sh"
165- sh """ docker run -itd --name airgap-${ JOB_BASE_NAME} -${ BUILD_NUMBER} \
166- -v /var/run/docker.sock:/var/run/docker.sock \
167- --env TF_VAR_docker_hub_username="${ REGISTRY_USERNAME} " \
168- --env TF_VAR_docker_hub_password="${ REGISTRY_PASSWORD} " \
169- --env TF_VAR_aws_access_key=${ AWS_ACCESS_KEY} \
170- --env TF_VAR_aws_secret_key=${ AWS_SECRET_KEY} \
171- --env TF_VAR_arch=${ ARCH} \
172- --env TF_VAR_registry_aws_instance_type=${ registry_instance_type} \
173- --env TF_VAR_appco_test="true"\
174- --dns=10.113.53.53 \
175- --dns=10.113.53.54 \
176- airgap-${ JOB_BASE_NAME} -${ BUILD_NUMBER}
177- """
178- }
179-
180- stage (' private registry setup' ) {
181- sh " docker exec airgap-${ JOB_BASE_NAME} -${ BUILD_NUMBER} ./airgap/scripts/terraform-setup.sh"
182- REGISTRY_URL = sh (
183- script : " docker exec airgap-${ JOB_BASE_NAME} -${ BUILD_NUMBER} terraform -chdir=./airgap/terraform output -raw registry_url" ,
184- returnStdout : true
185- )
186- println REGISTRY_URL
187- REGISTRY_USERNAME = sh (
188- script : " docker exec airgap-${ JOB_BASE_NAME} -${ BUILD_NUMBER} terraform -chdir=./airgap/terraform output -raw registry_username" ,
189- returnStdout : true
190- )
191- REGISTRY_PASSWORD = sh (
192- script : " docker exec airgap-${ JOB_BASE_NAME} -${ BUILD_NUMBER} terraform -chdir=./airgap/terraform output -raw registry_password" ,
193- returnStdout : true
194- )
195- // Pull appco images and push to private registry
196- sh """ docker exec \
197- --env REGISTRY_URL=${ REGISTRY_URL} \
198- --env REGISTRY_USERNAME="${ REGISTRY_USERNAME} " \
199- --env REGISTRY_PASSWORD="${ REGISTRY_PASSWORD} " \
200- --env APPCO_USERNAME=${ APPCO_USERNAME} \
201- --env APPCO_PASSWORD=${ APPCO_PASSWORD} \
202- --env LONGHORN_CHART_URI=${ LONGHORN_CHART_URI} \
203- --env LONGHORN_VERSION=${ LONGHORN_VERSION} \
204- --env APPCO_LONGHORN_COMPONENT_IMAGE_PATH=${ APPCO_LONGHORN_COMPONENT_IMAGE_PATH} \
205- --env LONGHORN_COMPONENT_TAG=${ LONGHORN_COMPONENT_TAG} \
206- --env LONGHORN_UPGRADE_TEST=${ LONGHORN_UPGRADE_TEST} \
207- --env LONGHORN_STABLE_VERSION=${ LONGHORN_STABLE_VERSION} \
208- --env LONGHORN_STABLE_VERSION_CHART_URI=${ LONGHORN_STABLE_VERSION_CHART_URI} \
209- --env LONGHORN_TRANSIENT_VERSION=${ LONGHORN_TRANSIENT_VERSION} \
210- --env LONGHORN_TRANSIENT_VERSION_CHART_URI=${ LONGHORN_TRANSIENT_VERSION_CHART_URI} \
211- ${ envArgs} \
212- airgap-${ JOB_BASE_NAME} -${ BUILD_NUMBER} \
213- bash -c './pipelines/appco/scripts/prepare_airgap_appco_images.sh'
214- """
215-
216- return
217- }
218- }
21962
22063 stage(' build' ) {
22164 if (JOB_BASE_NAME == " longhorn-tests-regression" ) {
@@ -231,6 +74,11 @@ node {
23174 RESOURCE_OWNER = BUILD_TRIGGER_BY . replace(" \n Started by user " , " " )
23275 }
23376
77+ if (params. AIR_GAP_INSTALLATION ) {
78+ REGISTRY_URL = AWS_PRIVATE_ECR
79+ }
80+
81+ sh " cp ${ CA_CERT_PATH} ./SUSE_Trust_Root.crt"
23482 sh " pipelines/appco/scripts/build.sh"
23583 sh """ docker run -itd --cap-add=NET_ADMIN \
23684 --name ${ JOB_BASE_NAME} -${ BUILD_NUMBER} \
@@ -250,8 +98,8 @@ node {
25098 --env JOB_NAME=${ JOB_BASE_NAME} -${ BUILD_NUMBER} \
25199 --env AIR_GAP_INSTALLATION=${ AIR_GAP_INSTALLATION} \
252100 --env REGISTRY_URL=${ REGISTRY_URL} \
253- --env REGISTRY_USERNAME=" ${ REGISTRY_USERNAME } " \
254- --env REGISTRY_PASSWORD=" ${ REGISTRY_PASSWORD } " \
101+ --env AWS_PRIVATE_ECR= ${ AWS_PRIVATE_ECR } \
102+ --env CUSTOM_LONGHORN_ENGINE_IMAGE= ${ APPCO_LONGHORN_COMPONENT_IMAGE_PATH } /longhorn-engine: ${ LONGHORN_COMPONENT_TAG } \
255103 --env LONGHORN_TESTS_CUSTOM_IMAGE=${ LONGHORN_TESTS_CUSTOM_IMAGE} \
256104 --env CUSTOM_TEST_OPTIONS="${ CUSTOM_TEST_OPTIONS} " \
257105 --env DISTRO=${ DISTRO} \
@@ -300,7 +148,6 @@ node {
300148 --env TEST_TYPE=${ TEST_TYPE} \
301149 --env OUT_OF_CLUSTER=${ OUT_OF_CLUSTER} \
302150 --env IMAGE_NAME=${ imageName} \
303- ${ envArgs} \
304151 ${ imageName}
305152 """
306153
0 commit comments