diff --git a/agent-go/shell/update-app-tag.sh b/agent-go/shell/update-app-tag.sh index 2b4c38e..fd88f09 100644 --- a/agent-go/shell/update-app-tag.sh +++ b/agent-go/shell/update-app-tag.sh @@ -2,24 +2,33 @@ # Check if the correct number of arguments are provided if [ "$#" -ne 3 ]; then - echo "Usage: $0 " + echo "Usage: $0 " exit 1 fi # Assign the arguments to variables name_space=$1 -new_tag=$2 -deployment_name=$3 +deployment_name=$2 +new_tag=$3 -echo "Name Space: $name_space Deployment Name: $deployment_name New Tag: $new_tag" -echo "" +# echo "Name Space: $name_space Deployment Name: $deployment_name New Tag: $new_tag" +# echo "" deployment_image=$(kubectl -n "${name_space}" get deployment "${deployment_name}" -o=jsonpath='{.spec.template.spec.containers[*].image}') -image_prefix=$(echo "${deployment_image}" | cut -d":" -f1) -old_tag=$(echo "${deployment_image}" | cut -d":" -f2) -echo "image prefix is => ${image_prefix}" +old_tag=$(echo "${deployment_image}" | grep -oE ':[0-9]+\.[0-9]+\.[0-9]+.*') +image_prefix=${deployment_image%${old_tag}} +old_tag=${old_tag#*:} -echo "old_tag is ${old_tag}" +# echo "old_tag is ${old_tag}" +# echo "image prefix is => ${image_prefix}" -kubectl -n "${name_space}" patch deployment "${deployment_name}" -p "{\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"${deployment_name}\",\"image\": \"${image_prefix}:${new_tag}\"}]}}}}" + +kubectl -n "${name_space}" patch deployment "${deployment_name}" -p "{\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"${deployment_name}\",\"image\": \"${image_prefix}:${new_tag}\"}]}}}}" >> /dev/null + + +real_new_tag=$(kubectl -n "${name_space}" get deployment "${deployment_name}" -o=jsonpath='{.spec.template.spec.containers[*].image}' | grep -oE ':[0-9]+\.[0-9]+\.[0-9]+.*') +real_new_tag=${real_new_tag#*:} +current_date=$(date "+%Y-%m-%d-%H-%M-%S") + +echo "${current_date} ${name_space} ${deployment_name} ${old_tag} ${real_new_tag}" diff --git a/agent-operator/CmiiK8sOperator_test.go b/agent-operator/CmiiK8sOperator_test.go index 5e3369f..5630fb0 100644 --- a/agent-operator/CmiiK8sOperator_test.go +++ b/agent-operator/CmiiK8sOperator_test.go @@ -220,7 +220,7 @@ func TestScaleCmiiBackendDeploymentToDesiredReplicas(t *testing.T) { func TestBackupAllDeploymentFromEnv(t *testing.T) { - BackupAllDeploymentFromEnv(integration) + BackupAllDeploymentFromEnv(demo) } @@ -243,18 +243,48 @@ func TestRestartCmiiDeployment(t *testing.T) { func TestUpdateCmiiDeploymentImageTag(t *testing.T) { - cmiiEnv := integration - appName := "cmii-uav-platform" - newTag := "5.4.0-032601" + // 计算20:00的时间 + now := time.Now() + targetTime := time.Date(now.Year(), now.Month(), now.Day(), 20, 0, 0, 0, now.Location()) - tag := UpdateCmiiDeploymentImageTag(cmiiEnv, appName, newTag) - assert.Equal(t, tag, true, "update image tag failed !") - utils.SplitLinePrint() + // 如果当前时间已经过了20:00,那么就跳到下一天 + if now.After(targetTime) { + targetTime = targetTime.Add(24 * time.Hour) + } - check := CmiiOperator.DeploymentStatusCheck(cmiiEnv, appName, 300) - assert.Equal(t, check, true, "deployment run failed!") + // 计算到20:00的剩余时间 + duration := targetTime.Sub(now) - // push message - message_pusher.PushCmiiUpdateMessage(cmiiEnv, appName, newTag, check) + // 等待到20:00 + time.Sleep(duration) + + cmiiEnv := demo + //appName := "cmii-uav-platform" + //newTag := "5.4.0-032601" + + appNameTagMap := map[string]string{ + "cmii-uav-waypoint": "5.4.0-032901", + "cmii-uav-platform-armypeople": "5.4.0-032901", + "cmii-uav-platform-open": "5.4.0-032901", + "cmii-admin-data": "5.4.0-032901", + "cmii-uav-industrial-portfolio": "5.4.0-032901", + "cmii-uav-mqtthandler": "5.4.0-032901", + "cmii-uav-alarm": "5.4.0-032501", + "cmii-uav-device": "5.4.0-032501", + "cmii-suav-supervision": "5.4.0-032501", + "cmii-uav-airspace": "5.4.0-032501", + } + + for appName, newTag := range appNameTagMap { + tag := UpdateCmiiDeploymentImageTag(cmiiEnv, appName, newTag) + assert.Equal(t, tag, true, "update image tag failed !") + utils.SplitLinePrint() + + check := CmiiOperator.DeploymentStatusCheck(cmiiEnv, appName, 300) + assert.Equal(t, check, true, "deployment run failed!") + + // push message + message_pusher.PushCmiiUpdateMessage(cmiiEnv, appName, newTag, check) + } } diff --git a/cmii_operator/log/cmii-update-log.txt b/cmii_operator/log/cmii-update-log.txt index 34e20fe..7b38f3e 100644 --- a/cmii_operator/log/cmii-update-log.txt +++ b/cmii_operator/log/cmii-update-log.txt @@ -17,3 +17,13 @@ 2024-03-22-17-17-15 uavcloud-demo cmii-uav-process 5.4.0 5.4.0-032201 2024-03-26-16-27-58 uavcloud-demo cmii-uav-multilink 5.4.0 5.4.0-032602 2024-03-26-17-11-29 uavcloud-test cmii-uav-platform 5.4.0-032002 5.4.0-032601 +2024-03-29-20-00-00 uavcloud-demo cmii-uav-waypoint 5.4.0-26768 5.4.0-032901 +2024-03-29-20-01-31 uavcloud-demo cmii-uav-mqtthandler 5.4.0-25916-032001 5.4.0-032901 +2024-03-29-20-02-58 uavcloud-demo cmii-uav-airspace 5.4.0-0319 5.4.0-032501 +2024-03-29-20-04-44 uavcloud-demo cmii-uav-platform-armypeople 5.4.0-032704 5.4.0-032901 +2024-03-29-20-04-48 uavcloud-demo cmii-uav-platform-open 5.4.0 5.4.0-032901 +2024-03-29-20-04-52 uavcloud-demo cmii-admin-data 5.4.0 5.4.0-032901 +2024-03-29-20-06-26 uavcloud-demo cmii-uav-industrial-portfolio 5.4.0-27348-032401 5.4.0-032901 +2024-03-29-20-09-25 uavcloud-demo cmii-uav-alarm 5.4.0-0321 5.4.0-032501 +2024-03-29-20-10-45 uavcloud-demo cmii-uav-device 5.4.0-0321 5.4.0-032501 +2024-03-29-20-12-18 uavcloud-demo cmii-suav-supervision 5.2.0 5.4.0-032501