feat: 存在 kaniko 的流水线构建环境新增 IMAGE_DESTINATION 环境变量
This commit is contained in:
parent
7b66c59ef9
commit
1cb971c537
|
@ -8,14 +8,15 @@ const (
|
|||
|
||||
// CI 客户端 Pod 相关
|
||||
const (
|
||||
CI_CLIENT_POD_WORKSPACE_VOLUME_NAME = "ci-workspace" // ci 客户端 pod 工作卷名称
|
||||
CI_CLIENT_POD_WORKSPACE_PATH = "/devops-super" // ci 客户端 pod 工作卷挂载目录
|
||||
CI_CLIENT_POD_NAMESPACE = "devops-super-ci" // ci 客户端 pod 所在命名空间
|
||||
CI_CLIENT_POD_CONTAINER_STAGES_ENV_NAME = "STAGES" // ci 客户端容器阶段环境信息环境变量名称
|
||||
CI_CLIENT_POD_KANIKO_DIR = "/kaniko" // ci 客户端 kaniko 环境目录
|
||||
CI_CLIENT_POD_KANIKO_WORKSPACE_PATH = "/workspace" // ci 客户端 kaniko 容器的工作目录
|
||||
CI_CLIENT_POD_KANIKO_EXECUTOR_IMAGE = "registry.cn-shenzhen.aliyuncs.com/zze/gcriokaniko-executor:v1.19.0" // kaniko executor 镜像
|
||||
CI_CLIENT_POD_KANIKO_WARMER_IMAGE = "registry.cn-shenzhen.aliyuncs.com/zze/gcriokaniko-warmer:v1.19.0" // kanico warmer 镜像
|
||||
CI_CLIENT_CONFIG_MAP_NAME = "devops-super-ci-config"
|
||||
CI_CLIENT_CONFIG_MAP_SECRET_KEY_PREFIX = "secret"
|
||||
CI_CLIENT_POD_WORKSPACE_VOLUME_NAME = "ci-workspace" // ci 客户端 pod 工作卷名称
|
||||
CI_CLIENT_POD_WORKSPACE_PATH = "/devops-super" // ci 客户端 pod 工作卷挂载目录
|
||||
CI_CLIENT_POD_NAMESPACE = "devops-super-ci" // ci 客户端 pod 所在命名空间
|
||||
CI_CLIENT_POD_CONTAINER_STAGES_ENV_NAME = "STAGES" // ci 客户端容器阶段环境信息环境变量名称
|
||||
CI_CLIENT_POD_KANIKO_DIR = "/kaniko" // ci 客户端 kaniko 环境目录
|
||||
CI_CLIENT_POD_KANIKO_WORKSPACE_PATH = "/workspace" // ci 客户端 kaniko 容器的工作目录
|
||||
CI_CLIENT_POD_KANIKO_EXECUTOR_IMAGE = "registry.cn-shenzhen.aliyuncs.com/zze/gcriokaniko-executor:v1.19.0" // kaniko executor 镜像
|
||||
CI_CLIENT_POD_KANIKO_WARMER_IMAGE = "registry.cn-shenzhen.aliyuncs.com/zze/gcriokaniko-warmer:v1.19.0" // kanico 推送地址
|
||||
CI_CLIENT_POD_KANIKO_IMAGE_DESTINATION_ENV_NAME = "IMAGE_DESTINATION" // kanico warmer 镜像
|
||||
CI_CLIENT_CONFIG_MAP_NAME = "devops-super-ci-config"
|
||||
CI_CLIENT_CONFIG_MAP_SECRET_KEY_PREFIX = "secret"
|
||||
)
|
||||
|
|
|
@ -233,6 +233,7 @@ func createCiPod(kubeClient *kubernetes.Client, namespace, name string, arrangeC
|
|||
hasKaniko bool
|
||||
dockerfilePathsToCache []string
|
||||
kanikoVolumeMounts []corev1.VolumeMount
|
||||
imageDestination string
|
||||
)
|
||||
|
||||
var createEnvs = func(envs map[string]string) []corev1.EnvVar {
|
||||
|
@ -246,7 +247,7 @@ func createCiPod(kubeClient *kubernetes.Client, namespace, name string, arrangeC
|
|||
for idx, envItem := range arrangeConfig {
|
||||
mountPath := consts.CI_CLIENT_POD_WORKSPACE_PATH
|
||||
containerName := fmt.Sprintf("env-%d", idx)
|
||||
if envItem.IsKaniko {
|
||||
if envItem.IsKaniko { // 只能存在一个 kaniko 环境
|
||||
hasKaniko = true
|
||||
mountPath = consts.CI_CLIENT_POD_KANIKO_WORKSPACE_PATH
|
||||
containerName = fmt.Sprintf("%s-kaniko", containerName)
|
||||
|
@ -272,6 +273,7 @@ func createCiPod(kubeClient *kubernetes.Client, namespace, name string, arrangeC
|
|||
container.Args = append(container.Args, "--skip-tls-verify-pull")
|
||||
container.Args = append(container.Args, fmt.Sprintf("--context=dir://%s", envItem.KanikoParam.ContextDir))
|
||||
container.Args = append(container.Args, fmt.Sprintf("--destination=%s", envItem.KanikoParam.ImageDestination))
|
||||
imageDestination = envItem.KanikoParam.ImageDestination
|
||||
if envItem.KanikoParam.UpdateBaseImageCache {
|
||||
dockerfilePathsToCache = append(dockerfilePathsToCache, envItem.KanikoParam.DockerfilePath)
|
||||
}
|
||||
|
@ -331,6 +333,13 @@ func createCiPod(kubeClient *kubernetes.Client, namespace, name string, arrangeC
|
|||
|
||||
updateBaseImageCache := hasKaniko && len(dockerfilePathsToCache) > 0
|
||||
|
||||
if !gutil.IsEmpty(imageDestination) {
|
||||
container.Env = append(container.Env, corev1.EnvVar{
|
||||
Name: consts.CI_CLIENT_POD_KANIKO_IMAGE_DESTINATION_ENV_NAME,
|
||||
Value: imageDestination,
|
||||
})
|
||||
}
|
||||
|
||||
if len(arrangeConfig) == 1 || idx == (len(arrangeConfig)-1) { // 如果只有一个环境容器 或 是最后一个容器
|
||||
if updateBaseImageCache { // 如果要更新基础镜像缓存,则最后一个容器肯定是 kaniko warm 容器
|
||||
initContainers = append(initContainers, container)
|
||||
|
|
Loading…
Reference in New Issue