diff --git a/pkg/microservice/aslan/core/common/service/kube/apply.go b/pkg/microservice/aslan/core/common/service/kube/apply.go index 53577bb4dd..498edc0917 100644 --- a/pkg/microservice/aslan/core/common/service/kube/apply.go +++ b/pkg/microservice/aslan/core/common/service/kube/apply.go @@ -587,6 +587,7 @@ func CreateOrPatchResource(applyParam *ResourceApplyParam, log *zap.SugaredLogge errList = multierror.Append(errList, err) continue } + log.Infof("update json data: %s", string(jsonData)) obj, err := serializer.NewDecoder().JSONToRuntimeObject(jsonData) if err != nil { log.Errorf("Failed to convert JSON to Object, manifest is\n%v\n, error: %v", u, err) diff --git a/pkg/microservice/aslan/core/environment/service/environment.go b/pkg/microservice/aslan/core/environment/service/environment.go index acb9f8fa9c..c39961757e 100644 --- a/pkg/microservice/aslan/core/environment/service/environment.go +++ b/pkg/microservice/aslan/core/environment/service/environment.go @@ -674,10 +674,17 @@ func updateProductImpl(updateRevisionSvcs []string, deployStrategy map[string]st return } + curEnv, err := commonrepo.NewProductColl().Find(&commonrepo.ProductFindOptions{Name: productName, EnvName: envName}) + if err != nil { + log.Errorf("Failed to find current env %s/%s, error: %v", productName, envName, err) + service.Error = err.Error() + return + } + items, errUpsertService := upsertService( updateProd, service, - existedProd.GetServiceMap()[service.ServiceName], + curEnv.GetServiceMap()[service.ServiceName], !updateProd.Production, inf, kubeClient, istioClient, log) if errUpsertService != nil { service.Error = errUpsertService.Error() diff --git a/pkg/microservice/aslan/core/environment/service/service.go b/pkg/microservice/aslan/core/environment/service/service.go index 7aa2a1eb45..8fd38a772a 100644 --- a/pkg/microservice/aslan/core/environment/service/service.go +++ b/pkg/microservice/aslan/core/environment/service/service.go @@ -22,7 +22,6 @@ import ( "github.com/pkg/errors" "go.uber.org/zap" "helm.sh/helm/v3/pkg/releaseutil" - versionedclient "istio.io/client-go/pkg/clientset/versioned" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes" @@ -36,7 +35,6 @@ import ( "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/service/kube" "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/service/repository" commontypes "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/types" - commonutil "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/util" "github.com/koderover/zadig/v2/pkg/setting" kubeclient "github.com/koderover/zadig/v2/pkg/shared/kube/client" internalresource "github.com/koderover/zadig/v2/pkg/shared/kube/resource" @@ -443,25 +441,6 @@ func RestartService(envName string, args *SvcOptArgs, production bool, log *zap. return err } - restConfig, err := kubeclient.GetRESTConfig(config.HubServerAddress(), productObj.ClusterID) - if err != nil { - return err - } - - istioClient, err := versionedclient.NewForConfig(restConfig) - if err != nil { - return err - } - - cls, err := kubeclient.GetKubeClientSet(config.HubServerAddress(), productObj.ClusterID) - if err != nil { - return e.ErrCreateEnv.AddErr(err) - } - inf, err := informer.NewInformer(productObj.ClusterID, productObj.Namespace, cls) - if err != nil { - return e.ErrCreateEnv.AddErr(err) - } - // aws secrets needs to be refreshed regs, err := commonservice.ListRegistryNamespaces("", true, log) if err != nil { @@ -496,33 +475,14 @@ func RestartService(envName string, args *SvcOptArgs, production bool, log *zap. return updater.RestartStatefulSet(productObj.Namespace, sts.Name, kubeClient) } default: - var serviceTmpl *commonmodels.Service var productService *commonmodels.ProductService - serviceObj, ok := productObj.GetServiceMap()[args.ServiceName] if !ok { return nil } - productService = serviceObj - serviceTmpl, err = repository.QueryTemplateService(&commonrepo.ServiceFindOption{ - ProductName: serviceObj.ProductName, - ServiceName: serviceObj.ServiceName, - Revision: serviceObj.Revision, - Type: setting.K8SDeployType, - }, productObj.Production) - - // for services deployed by zadig, service will be applied when restarting - if commonutil.ServiceDeployed(serviceTmpl.ServiceName, productObj.ServiceDeployStrategy) { - _, err = upsertService( - productObj, - productService, - productService, - !productObj.Production, inf, kubeClient, istioClient, log) - } else { - err = restartRelatedWorkloads(productObj, productService, kubeClient, log) - } + err = restartRelatedWorkloads(productObj, productService, kubeClient, log) log.Infof("restart resource from namespace:%s/serviceName:%s ", productObj.Namespace, args.ServiceName) if err != nil { diff --git a/pkg/tool/kube/patcher/patcher.go b/pkg/tool/kube/patcher/patcher.go index 1fa5ae2927..b94aab3558 100644 --- a/pkg/tool/kube/patcher/patcher.go +++ b/pkg/tool/kube/patcher/patcher.go @@ -28,6 +28,7 @@ import ( krkubeclient "github.com/koderover/zadig/v2/pkg/tool/kube/client" "github.com/koderover/zadig/v2/pkg/tool/kube/util" + "github.com/koderover/zadig/v2/pkg/tool/log" ) // GeneratePatchBytes generate the patchBytes inspired by the patcher in kubectl/pkg/cmd/apply/patcher.go @@ -85,10 +86,14 @@ func GeneratePatchBytes(obj, modifiedObj runtime.Object) ([]byte, types.PatchTyp return nil, "", fmt.Errorf(createPatchErrFormat, original, modified, current, err) } + log.Debugf("original: %s", string(original)) + log.Debugf("modified: %s", string(modified)) + log.Debugf("current: %s", string(current)) patch, err = strategicpatch.CreateThreeWayMergePatch(original, modified, current, lookupPatchMeta, true) if err != nil { return nil, "", fmt.Errorf(createPatchErrFormat, original, modified, current, err) } + log.Debugf("patch: %s", string(patch)) } if string(patch) == "{}" {