Skip to content

Commit

Permalink
Revise controller log and fix deployment template error (#1735)
Browse files Browse the repository at this point in the history
* revise log and fix deployment template error
  • Loading branch information
Yisaer authored Feb 25, 2020
1 parent eca3b3b commit 58e56fd
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 7 deletions.
22 changes: 18 additions & 4 deletions pkg/manager/member/tidb_discovery_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
package member

import (
"encoding/json"

"github.com/pingcap/tidb-operator/pkg/apis/pingcap/v1alpha1"
"github.com/pingcap/tidb-operator/pkg/controller"
"github.com/pingcap/tidb-operator/pkg/label"
Expand Down Expand Up @@ -81,8 +83,11 @@ func (m *realTidbDiscoveryManager) Reconcile(tc *v1alpha1.TidbCluster) error {
if err != nil {
return controller.RequeueErrorf("error creating or updating discovery rolebinding: %v", err)
}

deploy, err := m.ctrl.CreateOrUpdateDeployment(tc, getTidbDiscoveryDeployment(tc))
d, err := getTidbDiscoveryDeployment(tc)
if err != nil {
return controller.RequeueErrorf("error generating discovery deployment: %v", err)
}
deploy, err := m.ctrl.CreateOrUpdateDeployment(tc, d)
if err != nil {
return controller.RequeueErrorf("error creating or updating discovery service: %v", err)
}
Expand Down Expand Up @@ -111,9 +116,9 @@ func getTidbDiscoveryService(tc *v1alpha1.TidbCluster, deploy *appsv1.Deployment
}
}

func getTidbDiscoveryDeployment(tc *v1alpha1.TidbCluster) *appsv1.Deployment {
func getTidbDiscoveryDeployment(tc *v1alpha1.TidbCluster) (*appsv1.Deployment, error) {
meta, l := getDiscoveryMeta(tc, controller.DiscoveryMemberName)
return &appsv1.Deployment{
d := &appsv1.Deployment{
ObjectMeta: meta,
Spec: appsv1.DeploymentSpec{
Replicas: controller.Int32Ptr(1),
Expand Down Expand Up @@ -150,6 +155,15 @@ func getTidbDiscoveryDeployment(tc *v1alpha1.TidbCluster) *appsv1.Deployment {
},
},
}
b, err := json.Marshal(d.Spec.Template.Spec)
if err != nil {
return nil, err
}
if d.Annotations == nil {
d.Annotations = map[string]string{}
}
d.Annotations[controller.LastAppliedPodTemplate] = string(b)
return d, nil
}

func getDiscoveryMeta(tc *v1alpha1.TidbCluster, nameFunc func(string) string) (metav1.ObjectMeta, label.Label) {
Expand Down
6 changes: 5 additions & 1 deletion pkg/monitor/monitor/monitor_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,11 @@ func (mm *MonitorManager) syncTidbMonitorDeployment(monitor *v1alpha1.TidbMonito
return err
}

deployment := getMonitorDeployment(sa, cm, secret, monitor, tc)
deployment, err := getMonitorDeployment(sa, cm, secret, monitor, tc)
if err != nil {
klog.Errorf("tm[%s/%s]'s deployment failed to generate,err: %v", monitor.Namespace, monitor.Name, err)
return err
}
_, err = mm.typedControl.CreateOrUpdateDeployment(monitor, deployment)
if err != nil {
klog.Errorf("tm[%s/%s]'s deployment failed to sync,err: %v", monitor.Namespace, monitor.Name, err)
Expand Down
13 changes: 11 additions & 2 deletions pkg/monitor/monitor/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
package monitor

import (
"encoding/json"
"fmt"
"strconv"

Expand Down Expand Up @@ -206,7 +207,7 @@ func getMonitorRoleBinding(sa *core.ServiceAccount, role *rbac.Role, monitor *v1
}
}

func getMonitorDeployment(sa *core.ServiceAccount, config *core.ConfigMap, secret *core.Secret, monitor *v1alpha1.TidbMonitor, tc *v1alpha1.TidbCluster) *apps.Deployment {
func getMonitorDeployment(sa *core.ServiceAccount, config *core.ConfigMap, secret *core.Secret, monitor *v1alpha1.TidbMonitor, tc *v1alpha1.TidbCluster) (*apps.Deployment, error) {
deployment := getMonitorDeploymentSkeleton(sa, monitor)
initContainer := getMonitorInitContainer(monitor, tc)
deployment.Spec.Template.Spec.InitContainers = append(deployment.Spec.Template.Spec.InitContainers, initContainer)
Expand All @@ -219,7 +220,15 @@ func getMonitorDeployment(sa *core.ServiceAccount, config *core.ConfigMap, secre
}
volumes := getMonitorVolumes(config, monitor, tc)
deployment.Spec.Template.Spec.Volumes = volumes
return deployment
b, err := json.Marshal(deployment.Spec.Template.Spec)
if err != nil {
return nil, err
}
if deployment.Annotations == nil {
deployment.Annotations = map[string]string{}
}
deployment.Annotations[controller.LastAppliedPodTemplate] = string(b)
return deployment, nil
}

func getMonitorDeploymentSkeleton(sa *core.ServiceAccount, monitor *v1alpha1.TidbMonitor) *apps.Deployment {
Expand Down

0 comments on commit 58e56fd

Please sign in to comment.