update router workload

This commit is contained in:
Jeff
2019-05-13 21:26:54 +08:00
committed by zryfish
parent 89f54da60a
commit 049b3dd11d

View File

@@ -207,7 +207,7 @@ func CreateRouter(namespace string, routerType corev1.ServiceType, annotations m
} }
} }
err := createRouterWorkload(namespace, routerType == corev1.ServiceTypeLoadBalancer, injectSidecar) err := createOrUpdateRouterWorkload(namespace, routerType == corev1.ServiceTypeLoadBalancer, injectSidecar)
if err != nil { if err != nil {
glog.Error(err) glog.Error(err)
return nil, err return nil, err
@@ -320,7 +320,7 @@ func deleteRouterService(namespace string) (*corev1.Service, error) {
return service, nil return service, nil
} }
func createRouterWorkload(namespace string, publishService bool, servicemeshEnabled bool) error { func createOrUpdateRouterWorkload(namespace string, publishService bool, servicemeshEnabled bool) error {
obj, ok := routerTemplates["DEPLOYMENT"] obj, ok := routerTemplates["DEPLOYMENT"]
if !ok { if !ok {
glog.Error("Deployment template file not loaded") glog.Error("Deployment template file not loaded")
@@ -329,6 +329,7 @@ func createRouterWorkload(namespace string, publishService bool, servicemeshEnab
k8sClient := k8s.Client() k8sClient := k8s.Client()
createDeployment := true
deployment := obj.(*extensionsv1beta1.Deployment) deployment := obj.(*extensionsv1beta1.Deployment)
deployment.Name = constants.IngressControllerPrefix + namespace deployment.Name = constants.IngressControllerPrefix + namespace
@@ -355,7 +356,18 @@ func createRouterWorkload(namespace string, publishService bool, servicemeshEnab
deployment.Spec.Template.Spec.Containers[0].Args = append(deployment.Spec.Template.Spec.Containers[0].Args, "--report-node-internal-ip-address") deployment.Spec.Template.Spec.Containers[0].Args = append(deployment.Spec.Template.Spec.Containers[0].Args, "--report-node-internal-ip-address")
} }
deployment, err := k8sClient.ExtensionsV1beta1().Deployments(constants.IngressControllerNamespace).Create(deployment) _, err := k8sClient.ExtensionsV1beta1().Deployments(constants.IngressControllerNamespace).Get(deployment.Name, meta_v1.GetOptions{})
if err == nil {
createDeployment = false
}
if createDeployment {
deployment, err = k8sClient.ExtensionsV1beta1().Deployments(constants.IngressControllerNamespace).Create(deployment)
} else {
deployment, err = k8sClient.ExtensionsV1beta1().Deployments(constants.IngressControllerNamespace).Update(deployment)
}
if err != nil { if err != nil {
glog.Error(err) glog.Error(err)
return err return err
@@ -411,22 +423,12 @@ func UpdateRouter(namespace string, routerType corev1.ServiceType, annotations m
return router, err return router, err
} }
routerAnnotations := router.GetAnnotations() enableServicemesh := annotations[SERVICEMESH_ENABLED] == "true"
if routerAnnotations[SERVICEMESH_ENABLED] != annotations[SERVICEMESH_ENABLED] || routerType != router.Spec.Type { err = createOrUpdateRouterWorkload(namespace, routerType == corev1.ServiceTypeLoadBalancer, enableServicemesh)
err = deleteRouterWorkload(namespace) if err != nil {
if err != nil { glog.Error(err)
glog.Error(err) return router, err
return router, err
}
enableServicemesh := annotations[SERVICEMESH_ENABLED] == "true"
err := createRouterWorkload(namespace, routerType == corev1.ServiceTypeLoadBalancer, enableServicemesh)
if err != nil {
glog.Error(err)
return router, err
}
} }
newRouter, err := updateRouterService(namespace, routerType, annotations) newRouter, err := updateRouterService(namespace, routerType, annotations)