Update deployment.go
This commit is contained in:
		@ -87,8 +87,8 @@ func (d *deployment) GetDeployments(filterName, namespace string, limit, page in
 | 
				
			|||||||
func (d *deployment) GetDeploymentDetail(deploymentName, namespace string) (deployment *appsv1.Deployment, err error) {
 | 
					func (d *deployment) GetDeploymentDetail(deploymentName, namespace string) (deployment *appsv1.Deployment, err error) {
 | 
				
			||||||
	deployment, err = K8s.ClientSet.AppsV1().Deployments(namespace).Get(context.TODO(), deploymentName, metav1.GetOptions{})
 | 
						deployment, err = K8s.ClientSet.AppsV1().Deployments(namespace).Get(context.TODO(), deploymentName, metav1.GetOptions{})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		logger.Error("获取Deployment详情失败," + err.Error())
 | 
							logger.Error(errors.New("获取Deployment详情失败, " + err.Error()))
 | 
				
			||||||
		return nil, errors.New("获取Deployment详情失败," + err.Error())
 | 
							return nil, errors.New("获取Deployment详情失败, " + err.Error())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return deployment, nil
 | 
						return deployment, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -160,36 +160,29 @@ func (d *deployment) CreateDeployment(data *DeployCreate) (err error) {
 | 
				
			|||||||
		//设置第一个容器的ReadnessProbe,因为我们pod中只有一个容器,所以直接使用index 0 即可
 | 
							//设置第一个容器的ReadnessProbe,因为我们pod中只有一个容器,所以直接使用index 0 即可
 | 
				
			||||||
		//如果pod中有多个容器,则这里需要使用for循环去定义
 | 
							//如果pod中有多个容器,则这里需要使用for循环去定义
 | 
				
			||||||
		deployment.Spec.Template.Spec.Containers[0].ReadinessProbe = &corev1.Probe{
 | 
							deployment.Spec.Template.Spec.Containers[0].ReadinessProbe = &corev1.Probe{
 | 
				
			||||||
			ProbeHandler: corev1.ProbeHandler{
 | 
								Handler: corev1.Handler{
 | 
				
			||||||
				HTTPGet: &corev1.HTTPGetAction{
 | 
									HTTPGet: &corev1.HTTPGetAction{
 | 
				
			||||||
					Path: data.HealthPath,
 | 
										Path: data.HealthPath,
 | 
				
			||||||
					//intstr.IntOrString的作用是端口可以定义为整型,也可以定义为字符串
 | 
					 | 
				
			||||||
					//Type=0则表示该结构体实例内的数据为整型,转json时只使用IntVal的数据
 | 
					 | 
				
			||||||
					//Type=1则表示该结构体实例内的数据为字符串,转json时只使用StrVal的数据
 | 
					 | 
				
			||||||
					Port: intstr.IntOrString{
 | 
										Port: intstr.IntOrString{
 | 
				
			||||||
						Type:   0,
 | 
											Type:   0,
 | 
				
			||||||
						IntVal: data.ContainerPort,
 | 
											IntVal: data.ContainerPort,
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			//初始化等待时间
 | 
					 | 
				
			||||||
			InitialDelaySeconds: 5,
 | 
								InitialDelaySeconds: 5,
 | 
				
			||||||
			//超时时间
 | 
								TimeoutSeconds:      5,
 | 
				
			||||||
			TimeoutSeconds: 5,
 | 
								PeriodSeconds:       5,
 | 
				
			||||||
			//执行间隔
 | 
					 | 
				
			||||||
			PeriodSeconds: 5,
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		deployment.Spec.Template.Spec.Containers[0].LivenessProbe = &corev1.Probe{
 | 
							deployment.Spec.Template.Spec.Containers[0].LivenessProbe = &corev1.Probe{
 | 
				
			||||||
			ProbeHandler: corev1.ProbeHandler{
 | 
								Handler: corev1.Handler{
 | 
				
			||||||
				HTTPGet: &corev1.HTTPGetAction{
 | 
									HTTPGet: &corev1.HTTPGetAction{
 | 
				
			||||||
					Path: data.HealthPath,
 | 
										Path: data.HealthPath,
 | 
				
			||||||
					Port: intstr.IntOrString{
 | 
										Port: intstr.IntOrString{
 | 
				
			||||||
						Type:   0,
 | 
											Type: 0,
 | 
				
			||||||
						IntVal: data.ContainerPort,
 | 
											IntVal: data.ContainerPort,
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			//初始化等待时间
 | 
					 | 
				
			||||||
			InitialDelaySeconds: 15,
 | 
								InitialDelaySeconds: 15,
 | 
				
			||||||
			//超时时间
 | 
								//超时时间
 | 
				
			||||||
			TimeoutSeconds: 5,
 | 
								TimeoutSeconds: 5,
 | 
				
			||||||
@ -207,8 +200,9 @@ func (d *deployment) CreateDeployment(data *DeployCreate) (err error) {
 | 
				
			|||||||
		corev1.ResourceMemory: resource.MustParse(data.Memory),
 | 
							corev1.ResourceMemory: resource.MustParse(data.Memory),
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//调用SDK去更新Deployment
 | 
						//调用sdk创建deployment
 | 
				
			||||||
	_, err = K8s.ClientSet.AppsV1().Deployments(data.Namespace).Update(context.TODO(), deployment, metav1.UpdateOptions{})
 | 
						_, err = K8s.ClientSet.AppsV1().Deployments(data.Namespace).
 | 
				
			||||||
 | 
							Create(context.TODO(), deployment, metav1.CreateOptions{})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		logger.Error(errors.New("创建Deployment失败," + err.Error()))
 | 
							logger.Error(errors.New("创建Deployment失败," + err.Error()))
 | 
				
			||||||
		return errors.New("创建Deployment失败," + err.Error())
 | 
							return errors.New("创建Deployment失败," + err.Error())
 | 
				
			||||||
@ -220,15 +214,18 @@ func (d *deployment) CreateDeployment(data *DeployCreate) (err error) {
 | 
				
			|||||||
func (d *deployment) DeleteDeployment(deploymentName, namespace string) (err error) {
 | 
					func (d *deployment) DeleteDeployment(deploymentName, namespace string) (err error) {
 | 
				
			||||||
	err = K8s.ClientSet.AppsV1().Deployments(namespace).Delete(context.TODO(), deploymentName, metav1.DeleteOptions{})
 | 
						err = K8s.ClientSet.AppsV1().Deployments(namespace).Delete(context.TODO(), deploymentName, metav1.DeleteOptions{})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		logger.Error("删除Deployment失败," + err.Error())
 | 
							logger.Error(errors.New("删除Deployment失败, " + err.Error()))
 | 
				
			||||||
		return errors.New("删除Deployment失败," + err.Error())
 | 
							return errors.New("删除Deployment失败, " + err.Error())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//重启deployment
 | 
					//重启deployment
 | 
				
			||||||
func (d *deployment) RestartDeployment(deploymentName, namespace string) (err error) {
 | 
					func(d *deployment) RestartDeployment(deploymentName, namespace string) (err error) {
 | 
				
			||||||
	//此功能等同于kubectl命令
 | 
						//此功能等同于一下kubectl命令
 | 
				
			||||||
 | 
						//kubectl deployment ${service} -p \
 | 
				
			||||||
 | 
						//'{"spec":{"template":{"spec":{"containers":[{"name":"'"${service}"'","env":[{"name":"RESTART_","value":"'$(date +%s)'"}]}]}}}}'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//使用patchData Map组装数据
 | 
						//使用patchData Map组装数据
 | 
				
			||||||
	patchData := map[string]interface{}{
 | 
						patchData := map[string]interface{}{
 | 
				
			||||||
		"spec": map[string]interface{}{
 | 
							"spec": map[string]interface{}{
 | 
				
			||||||
@ -258,7 +255,8 @@ func (d *deployment) RestartDeployment(deploymentName, namespace string) (err er
 | 
				
			|||||||
		logger.Error(errors.New("重启Deployment失败," + err.Error()))
 | 
							logger.Error(errors.New("重启Deployment失败," + err.Error()))
 | 
				
			||||||
		return errors.New("重启Deployment失败," + err.Error())
 | 
							return errors.New("重启Deployment失败," + err.Error())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return
 | 
					
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//更新deployment
 | 
					//更新deployment
 | 
				
			||||||
@ -267,13 +265,13 @@ func (d *deployment) UpdateDeployment(namespace, content string) (err error) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	err = json.Unmarshal([]byte(content), deploy)
 | 
						err = json.Unmarshal([]byte(content), deploy)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		logger.Error("反序列化失败," + err.Error())
 | 
							logger.Error(errors.New("反序列化失败, " + err.Error()))
 | 
				
			||||||
		return errors.New("反序列化失败," + err.Error())
 | 
							return errors.New("反序列化失败, " + err.Error())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	_, err = K8s.ClientSet.AppsV1().Deployments(namespace).Update(context.TODO(), deploy, metav1.UpdateOptions{})
 | 
						_, err = K8s.ClientSet.AppsV1().Deployments(namespace).Update(context.TODO(), deploy, metav1.UpdateOptions{})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		logger.Error("更新Deployment失败," + err.Error())
 | 
							logger.Error(errors.New("更新Deployment失败, " + err.Error()))
 | 
				
			||||||
		return errors.New("更新Deployment失败," + err.Error())
 | 
							return errors.New("更新Deployment失败, " + err.Error())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -290,7 +288,8 @@ func (d *deployment) GetDeployNumPerNp() (deploysNps []*DeploysNp, err error) {
 | 
				
			|||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		deploysNps := &DeploysNp{
 | 
					
 | 
				
			||||||
 | 
							deploysNp := &DeploysNp{
 | 
				
			||||||
			Namespace: namespace.Name,
 | 
								Namespace: namespace.Name,
 | 
				
			||||||
			DeployNum: len(deploymentList.Items),
 | 
								DeployNum: len(deploymentList.Items),
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user