重新解析image地址
All checks were successful
continuous-integration/drone/tag Build is passing

This commit is contained in:
谢作欢
2023-11-03 15:57:34 +08:00
parent d78b079290
commit 57a38b9d2b
3 changed files with 63 additions and 31 deletions

View File

@@ -2,6 +2,7 @@ package k8s
import (
"context"
"drone-kubernetes/utils"
"errors"
"fmt"
appv1 "k8s.io/api/apps/v1"
@@ -9,7 +10,6 @@ import (
"k8s.io/apimachinery/pkg/util/json"
"k8s.io/client-go/kubernetes"
kindv1 "k8s.io/client-go/kubernetes/typed/apps/v1"
"strings"
"time"
)
@@ -70,35 +70,7 @@ func (c client) Do(namespace, kind, resourceName, actionMethod, repo string) (er
return fmt.Errorf("repo not empty")
}
// 解析规则判断是只单独变更tag还是镜像整个替换
if !strings.Contains(repo, ":") {
// 判断是镜像地址还是tag标签
if strings.Contains(repo, "/") {
// 镜像地址默认tag为 latest
repo = fmt.Sprintf("%s:latest", repo)
} else {
// 只是tag标签判断tag标签是否带有v开头的字符
if strings.HasPrefix(repo, "v") {
repo = strings.ReplaceAll(repo, "v", "")
}
}
resource.(*appv1.Deployment).Spec.Template.Spec.Containers[0].Image = fmt.Sprintf("%s:%s", strings.Split(resource.(*appv1.Deployment).Spec.Template.Spec.Containers[0].Image, ":")[0], repo)
} else {
// 获取tag
image := strings.Split(repo, ":")[0]
tag := strings.Split(repo, ":")[1]
if strings.Contains(tag, "v") {
tag = strings.ReplaceAll(tag, "v", "")
}
repo = fmt.Sprintf("%s:%s", image, tag)
resource.(*appv1.Deployment).Spec.Template.Spec.Containers[0].Image = repo
}
resource.(*appv1.Deployment).Spec.Template.Spec.Containers[0].Image = utils.ParseImage(repo)
_, err = kindType.(kindv1.DeploymentInterface).Update(context.Background(), resource.(*appv1.Deployment), metav1.UpdateOptions{})