[Cmii][ImageSync] - update-app-tag.sh

This commit is contained in:
zeaslity
2024-04-07 16:30:49 +08:00
parent a9f25712eb
commit fcca3d5275
3 changed files with 70 additions and 21 deletions

View File

@@ -2,24 +2,33 @@
# Check if the correct number of arguments are provided # Check if the correct number of arguments are provided
if [ "$#" -ne 3 ]; then if [ "$#" -ne 3 ]; then
echo "Usage: $0 <name_space> <new_tag> <deployment_name>" echo "Usage: $0 <name_space> <deployment_name> <new_tag>"
exit 1 exit 1
fi fi
# Assign the arguments to variables # Assign the arguments to variables
name_space=$1 name_space=$1
new_tag=$2 deployment_name=$2
deployment_name=$3 new_tag=$3
echo "Name Space: $name_space Deployment Name: $deployment_name New Tag: $new_tag" # echo "Name Space: $name_space Deployment Name: $deployment_name New Tag: $new_tag"
echo "" # echo ""
deployment_image=$(kubectl -n "${name_space}" get deployment "${deployment_name}" -o=jsonpath='{.spec.template.spec.containers[*].image}') 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}"

View File

@@ -220,7 +220,7 @@ func TestScaleCmiiBackendDeploymentToDesiredReplicas(t *testing.T) {
func TestBackupAllDeploymentFromEnv(t *testing.T) { func TestBackupAllDeploymentFromEnv(t *testing.T) {
BackupAllDeploymentFromEnv(integration) BackupAllDeploymentFromEnv(demo)
} }
@@ -243,10 +243,39 @@ func TestRestartCmiiDeployment(t *testing.T) {
func TestUpdateCmiiDeploymentImageTag(t *testing.T) { func TestUpdateCmiiDeploymentImageTag(t *testing.T) {
cmiiEnv := integration // 计算20:00的时间
appName := "cmii-uav-platform" now := time.Now()
newTag := "5.4.0-032601" targetTime := time.Date(now.Year(), now.Month(), now.Day(), 20, 0, 0, 0, now.Location())
// 如果当前时间已经过了20:00那么就跳到下一天
if now.After(targetTime) {
targetTime = targetTime.Add(24 * time.Hour)
}
// 计算到20:00的剩余时间
duration := targetTime.Sub(now)
// 等待到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) tag := UpdateCmiiDeploymentImageTag(cmiiEnv, appName, newTag)
assert.Equal(t, tag, true, "update image tag failed !") assert.Equal(t, tag, true, "update image tag failed !")
utils.SplitLinePrint() utils.SplitLinePrint()
@@ -256,5 +285,6 @@ func TestUpdateCmiiDeploymentImageTag(t *testing.T) {
// push message // push message
message_pusher.PushCmiiUpdateMessage(cmiiEnv, appName, newTag, check) message_pusher.PushCmiiUpdateMessage(cmiiEnv, appName, newTag, check)
}
} }

View File

@@ -17,3 +17,13 @@
2024-03-22-17-17-15 uavcloud-demo cmii-uav-process 5.4.0 5.4.0-032201 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-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-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