11#! /bin/bash
22MANIFESTS_FILE=${1:- " " }
33ADD_CHART=${2:- " true" }
4+ CHECK_ENGINE_FILE=${3:- " ./fountain/hack/check-engine-images.py" }
45
56
67add_chart_repo () {
@@ -13,6 +14,58 @@ add_chart_repo() {
1314 helm repo update ${KB_ENT_REPO_NAME}
1415}
1516
17+ check_service_version_images () {
18+ service_versions_tmp=${1:- " " }
19+ chart_version_tmp=${2:- " " }
20+ chart_name_tmp=${3:- " " }
21+ chart_images_tmp=${4:- " " }
22+
23+ if [[ ! -f " ${CHECK_ENGINE_FILE} " ]]; then
24+ return
25+ fi
26+
27+ for j in {1..10}; do
28+ python3 ${CHECK_ENGINE_FILE} -m ${MANIFESTS_FILE} -e ${chart_name_tmp} --addonVersion ${chart_version_tmp} --serviceVersion " ${service_versions_tmp} " 2> /dev/null
29+ ret_tmp=$?
30+ check_engine_result_file=" images-${chart_name_tmp} -${chart_version_tmp} .yaml"
31+ images=" "
32+ if [[ -f " ${check_engine_result_file} " ]]; then
33+ images=$( yq e ' .' ${chart_name_tmp} ' [0].images[]' ${check_engine_result_file} )
34+ rm -rf ${check_engine_result_file}
35+ fi
36+ repository=" "
37+ for repository in $( echo " $images " ) ; do
38+ if [[ " ${repository} " == " null" ]]; then
39+ continue
40+ fi
41+ echo " check engine image: $repository "
42+ check_flag=0
43+ for chart_image in $( echo " $chart_images_tmp " ) ; do
44+ if [[ " $chart_image " == " $repository " ]]; then
45+ check_flag=1
46+ break
47+ fi
48+ done
49+
50+ if [[ $check_flag -eq 0 ]]; then
51+ check_result_tmp=" $( tput -T xterm setaf 1) Not found ${chart_name_tmp} ${chart_version_tmp} image:${repository} in manifests file:${MANIFESTS_FILE} $( tput -T xterm sgr0) "
52+ echo " ${check_result_tmp} "
53+ CHECK_RESULTS=" $( cat check_manifest_result) "
54+ if [[ " ${CHECK_RESULTS} " != * " ${check_result_tmp} " * ]]; then
55+ echo " ${check_result_tmp} " >> check_manifest_result
56+ fi
57+ echo 1 > exit_result
58+ fi
59+ repository=" "
60+ done
61+ if [[ $ret_tmp -eq 0 && -n " $images " ]]; then
62+ echo " $( tput -T xterm setaf 2) Check chart ${chart_name_tmp} ${chart_version_tmp} success$( tput -T xterm sgr0) "
63+ break
64+ fi
65+ sleep 1
66+ done
67+ }
68+
1669check_images () {
1770 is_enterprise_tmp=${1:- " " }
1871 chart_version_tmp=${2:- " " }
@@ -185,46 +238,55 @@ check_charts_images() {
185238 for chart_version in $( echo " $chart_versions " | sed ' s/|/ /g' ) ; do
186239 is_enterprise=$( yq e " ." ${chart_name} " [${chart_index} ].isEnterprise" ${MANIFESTS_FILE} )
187240 chart_images=$( yq e " ." ${chart_name} " [${chart_index} ].images[]" ${MANIFESTS_FILE} )
188- case $chart_name in
189- kubeblocks-cloud)
190- set_values=" ${set_values} --set images.apiserver.tag=${chart_version} "
191- set_values=" ${set_values} --set images.sentry.tag=${chart_version} "
192- set_values=" ${set_values} --set images.sentryInit.tag=${chart_version} "
193- set_values=" ${set_values} --set images.relay.tag=${chart_version} "
194- set_values=" ${set_values} --set images.cr4w.tag=${chart_version} "
195- set_values=" ${set_values} --set images.openconsole.tag=${chart_version} "
196- set_values=" ${set_values} --set images.openconsoleAdmin.tag=${chart_version} "
197- set_values=" ${set_values} --set images.taskManager.tag=${chart_version} "
198- ;;
199- kb-cloud-installer)
200- set_values=" ${set_values} --set version=${chart_version} "
201- ;;
202- ingress-nginx)
203- set_values=" ${set_values} --set controller.image.image=apecloud/controller "
204- set_values=" ${set_values} --set controller.image.digest= "
205- set_values=" ${set_values} --set controller.admissionWebhooks.patch.image.image=apecloud/kube-webhook-certgen "
206- set_values=" ${set_values} --set controller.admissionWebhooks.patch.image.digest= "
207- ;;
208- gemini)
209- set_values=" ${set_values} --set victoria-metrics-cluster.enabled=false "
210- set_values=" ${set_values} --set loki.enabled=false "
211- set_values=" ${set_values} --set kubeviewer.enabled=false "
212- set_values=" ${set_values} --set cr-exporter.enabled=false "
213- ;;
214- kubebench)
215- set_values=" ${set_values} --set image.tag=0.0.12 "
216- set_values=" ${set_values} --set kubebenchImages.exporter=apecloud/kubebench:0.0.12"
217- set_values=" ${set_values} --set kubebenchImages.tools=apecloud/kubebench:0.0.12"
218- set_values=" ${set_values} --set kubebenchImages.tpcc=apecloud/benchmarksql:1.0"
219- ;;
220- dbdrag)
221- continue
222- ;;
223- esac
224- if [[ " $chart_name " == " kubeblocks-cloud" ]]; then
225- check_addon_charts_images " $chart_version " " $chart_name " " $chart_images " &
241+ service_versions=" "
242+ if yq e ' .' ${chart_name} ' [' ${chart_index} ' ] | has("serviceVersions")' " ${MANIFESTS_FILE} " > /dev/null 2>&1 ; then
243+ service_versions=$( yq e ' [.' ${chart_name} ' [' ${chart_index} ' ].serviceVersions[]] | join(",")' ${MANIFESTS_FILE} )
244+ fi
245+
246+ if [[ -n " ${service_versions} " ]]; then
247+ check_service_version_images " ${service_versions} " " $chart_version " " $chart_name " " $chart_images " &
248+ else
249+ case $chart_name in
250+ kubeblocks-cloud)
251+ set_values=" ${set_values} --set images.apiserver.tag=${chart_version} "
252+ set_values=" ${set_values} --set images.sentry.tag=${chart_version} "
253+ set_values=" ${set_values} --set images.sentryInit.tag=${chart_version} "
254+ set_values=" ${set_values} --set images.relay.tag=${chart_version} "
255+ set_values=" ${set_values} --set images.cr4w.tag=${chart_version} "
256+ set_values=" ${set_values} --set images.openconsole.tag=${chart_version} "
257+ set_values=" ${set_values} --set images.openconsoleAdmin.tag=${chart_version} "
258+ set_values=" ${set_values} --set images.taskManager.tag=${chart_version} "
259+ ;;
260+ kb-cloud-installer)
261+ set_values=" ${set_values} --set version=${chart_version} "
262+ ;;
263+ ingress-nginx)
264+ set_values=" ${set_values} --set controller.image.image=apecloud/controller "
265+ set_values=" ${set_values} --set controller.image.digest= "
266+ set_values=" ${set_values} --set controller.admissionWebhooks.patch.image.image=apecloud/kube-webhook-certgen "
267+ set_values=" ${set_values} --set controller.admissionWebhooks.patch.image.digest= "
268+ ;;
269+ gemini)
270+ set_values=" ${set_values} --set victoria-metrics-cluster.enabled=false "
271+ set_values=" ${set_values} --set loki.enabled=false "
272+ set_values=" ${set_values} --set kubeviewer.enabled=false "
273+ set_values=" ${set_values} --set cr-exporter.enabled=false "
274+ ;;
275+ kubebench)
276+ set_values=" ${set_values} --set image.tag=0.0.12 "
277+ set_values=" ${set_values} --set kubebenchImages.exporter=apecloud/kubebench:0.0.12"
278+ set_values=" ${set_values} --set kubebenchImages.tools=apecloud/kubebench:0.0.12"
279+ set_values=" ${set_values} --set kubebenchImages.tpcc=apecloud/benchmarksql:1.0"
280+ ;;
281+ dbdrag)
282+ continue
283+ ;;
284+ esac
285+ if [[ " $chart_name " == " kubeblocks-cloud" ]]; then
286+ check_addon_charts_images " $chart_version " " $chart_name " " $chart_images " &
287+ fi
288+ check_images " $is_enterprise " " $chart_version " " $chart_name " " $chart_images " " $set_values " &
226289 fi
227- check_images " $is_enterprise " " $chart_version " " $chart_name " " $chart_images " " $set_values " &
228290 chart_index=$(( $chart_index + 1 ))
229291 done
230292 done
0 commit comments