提交 049b3dd1 编写于 作者: J Jeff 提交者: zryfish

update router workload

上级 89f54da6
......@@ -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 {
glog.Error(err)
return nil, err
......@@ -320,7 +320,7 @@ func deleteRouterService(namespace string) (*corev1.Service, error) {
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"]
if !ok {
glog.Error("Deployment template file not loaded")
......@@ -329,6 +329,7 @@ func createRouterWorkload(namespace string, publishService bool, servicemeshEnab
k8sClient := k8s.Client()
createDeployment := true
deployment := obj.(*extensionsv1beta1.Deployment)
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, 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 {
glog.Error(err)
return err
......@@ -411,22 +423,12 @@ func UpdateRouter(namespace string, routerType corev1.ServiceType, annotations m
return router, err
}
routerAnnotations := router.GetAnnotations()
enableServicemesh := annotations[SERVICEMESH_ENABLED] == "true"
if routerAnnotations[SERVICEMESH_ENABLED] != annotations[SERVICEMESH_ENABLED] || routerType != router.Spec.Type {
err = deleteRouterWorkload(namespace)
if err != nil {
glog.Error(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
}
err = createOrUpdateRouterWorkload(namespace, routerType == corev1.ServiceTypeLoadBalancer, enableServicemesh)
if err != nil {
glog.Error(err)
return router, err
}
newRouter, err := updateRouterService(namespace, routerType, annotations)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册