This commit is contained in:
devad 2024-01-03 09:54:46 +08:00
parent 2fecfedcc4
commit 8edee441d1
1 changed files with 14 additions and 8 deletions

View File

@ -26,17 +26,23 @@ func NewPauseDeploymentLogic(ctx context.Context, svcCtx *svc.ServiceContext) *P
// 暂停POD
func (l *PauseDeploymentLogic) PauseDeployment(in *kubernetes.DeploymentDetailReq) (*kubernetes.Resp, error) {
// 缩放副本数量为0
rs := int32(0)
// 获取Deployment对象
deployment, err := l.svcCtx.ClientSet.AppsV1().Deployments(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
if err != nil {
return nil, err
if err == nil {
deployment.Spec.Replicas = &rs
annotations := deployment.GetAnnotations()
annotations["deploy.cloud.sealos.io/pause"] = `{"target":"","value":""}`
_, err = l.svcCtx.ClientSet.AppsV1().Deployments(in.Namespace).Update(l.ctx, deployment, metav1.UpdateOptions{})
}
sts, stsErr := l.svcCtx.ClientSet.AppsV1().StatefulSets(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
if stsErr == nil {
sts.Spec.Replicas = &rs
annotations := sts.GetAnnotations()
annotations["deploy.cloud.sealos.io/pause"] = `{"target":"","value":""}`
_, err = l.svcCtx.ClientSet.AppsV1().StatefulSets(in.Namespace).Update(l.ctx, sts, metav1.UpdateOptions{})
}
// 缩放Deployment对象为0个副本
rs := int32(0)
deployment.Spec.Replicas = &rs
annotations := deployment.GetAnnotations()
annotations["deploy.cloud.sealos.io/pause"] = `{"target":"","value":""}`
_, err = l.svcCtx.ClientSet.AppsV1().Deployments(in.Namespace).Update(l.ctx, deployment, metav1.UpdateOptions{})
return &kubernetes.Resp{
Code: "200",
Msg: "success",