Fix newdeploy doesn't handle error properly (#1316)
This commit is contained in:
@@ -156,13 +156,9 @@ func (deploy *NewDeploy) deleteDeployment(ns string, name string) error {
|
|||||||
// DeletePropagationBackground deletes the object immediately and dependent are deleted later
|
// DeletePropagationBackground deletes the object immediately and dependent are deleted later
|
||||||
// DeletePropagationForeground not advisable; it markes for deleteion and API can still serve those objects
|
// DeletePropagationForeground not advisable; it markes for deleteion and API can still serve those objects
|
||||||
deletePropagation := metav1.DeletePropagationBackground
|
deletePropagation := metav1.DeletePropagationBackground
|
||||||
err := deploy.kubernetesClient.ExtensionsV1beta1().Deployments(ns).Delete(name, &metav1.DeleteOptions{
|
return deploy.kubernetesClient.ExtensionsV1beta1().Deployments(ns).Delete(name, &metav1.DeleteOptions{
|
||||||
PropagationPolicy: &deletePropagation,
|
PropagationPolicy: &deletePropagation,
|
||||||
})
|
})
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (deploy *NewDeploy) getDeploymentSpec(fn *fv1.Function, env *fv1.Environment,
|
func (deploy *NewDeploy) getDeploymentSpec(fn *fv1.Function, env *fv1.Environment,
|
||||||
@@ -364,18 +360,14 @@ func (deploy *NewDeploy) updateHpa(hpa *asv1.HorizontalPodAutoscaler) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (deploy *NewDeploy) deleteHpa(ns string, name string) error {
|
func (deploy *NewDeploy) deleteHpa(ns string, name string) error {
|
||||||
err := deploy.kubernetesClient.AutoscalingV1().HorizontalPodAutoscalers(ns).Delete(name, &metav1.DeleteOptions{})
|
return deploy.kubernetesClient.AutoscalingV1().HorizontalPodAutoscalers(ns).Delete(name, &metav1.DeleteOptions{})
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (deploy *NewDeploy) createOrGetSvc(deployLabels map[string]string, svcName string, svcNamespace string) (*apiv1.Service, error) {
|
func (deploy *NewDeploy) createOrGetSvc(deployLabels map[string]string, svcName string, svcNamespace string) (*apiv1.Service, error) {
|
||||||
|
|
||||||
existingSvc, err := deploy.kubernetesClient.CoreV1().Services(svcNamespace).Get(svcName, metav1.GetOptions{})
|
existingSvc, err := deploy.kubernetesClient.CoreV1().Services(svcNamespace).Get(svcName, metav1.GetOptions{})
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return existingSvc, err
|
return existingSvc, err
|
||||||
}
|
} else if k8s_err.IsNotFound(err) {
|
||||||
|
|
||||||
if err != nil && k8s_err.IsNotFound(err) {
|
|
||||||
service := &apiv1.Service{
|
service := &apiv1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: svcName,
|
Name: svcName,
|
||||||
@@ -398,19 +390,13 @@ func (deploy *NewDeploy) createOrGetSvc(deployLabels map[string]string, svcName
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return svc, nil
|
return svc, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (deploy *NewDeploy) deleteSvc(ns string, name string) error {
|
func (deploy *NewDeploy) deleteSvc(ns string, name string) error {
|
||||||
err := deploy.kubernetesClient.CoreV1().Services(ns).Delete(name, &metav1.DeleteOptions{})
|
return deploy.kubernetesClient.CoreV1().Services(ns).Delete(name, &metav1.DeleteOptions{})
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (deploy *NewDeploy) waitForDeploy(depl *v1beta1.Deployment, replicas int32, specializationTimeout int) (*v1beta1.Deployment, error) {
|
func (deploy *NewDeploy) waitForDeploy(depl *v1beta1.Deployment, replicas int32, specializationTimeout int) (*v1beta1.Deployment, error) {
|
||||||
@@ -443,7 +429,7 @@ func (deploy *NewDeploy) cleanupNewdeploy(ns string, name string) error {
|
|||||||
result := &multierror.Error{}
|
result := &multierror.Error{}
|
||||||
|
|
||||||
err := deploy.deleteSvc(ns, name)
|
err := deploy.deleteSvc(ns, name)
|
||||||
if err != nil {
|
if err != nil && !k8s_err.IsNotFound(err) {
|
||||||
deploy.logger.Error("error deleting service for newdeploy function",
|
deploy.logger.Error("error deleting service for newdeploy function",
|
||||||
zap.Error(err),
|
zap.Error(err),
|
||||||
zap.String("function_name", name),
|
zap.String("function_name", name),
|
||||||
@@ -452,8 +438,8 @@ func (deploy *NewDeploy) cleanupNewdeploy(ns string, name string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = deploy.deleteHpa(ns, name)
|
err = deploy.deleteHpa(ns, name)
|
||||||
if err != nil {
|
if err != nil && !k8s_err.IsNotFound(err) {
|
||||||
deploy.logger.Error("error deleting service for newdeploy function",
|
deploy.logger.Error("error deleting HPA for newdeploy function",
|
||||||
zap.Error(err),
|
zap.Error(err),
|
||||||
zap.String("function_name", name),
|
zap.String("function_name", name),
|
||||||
zap.String("function_namespace", ns))
|
zap.String("function_namespace", ns))
|
||||||
@@ -461,7 +447,7 @@ func (deploy *NewDeploy) cleanupNewdeploy(ns string, name string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = deploy.deleteDeployment(ns, name)
|
err = deploy.deleteDeployment(ns, name)
|
||||||
if err != nil {
|
if err != nil && !k8s_err.IsNotFound(err) {
|
||||||
deploy.logger.Error("error deleting deployment for newdeploy function",
|
deploy.logger.Error("error deleting deployment for newdeploy function",
|
||||||
zap.Error(err),
|
zap.Error(err),
|
||||||
zap.String("function_name", name),
|
zap.String("function_name", name),
|
||||||
|
|||||||
@@ -187,10 +187,12 @@ func (deploy *NewDeploy) initEnvController() (k8sCache.Store, k8sCache.Controlle
|
|||||||
function, err := deploy.fissionClient.Functions(f.Metadata.Namespace).Get(f.Metadata.Name)
|
function, err := deploy.fissionClient.Functions(f.Metadata.Namespace).Get(f.Metadata.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
deploy.logger.Error("Error getting function", zap.Error(err), zap.Any("function", function))
|
deploy.logger.Error("Error getting function", zap.Error(err), zap.Any("function", function))
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
err = deploy.updateFuncDeployment(function, newEnv)
|
err = deploy.updateFuncDeployment(function, newEnv)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
deploy.logger.Error("Error updating function", zap.Error(err), zap.Any("function", function))
|
deploy.logger.Error("Error updating function", zap.Error(err), zap.Any("function", function))
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -312,9 +314,10 @@ func (deploy *NewDeploy) fnCreate(fn *fv1.Function, firstcreate bool) (*fscache.
|
|||||||
if !firstcreate {
|
if !firstcreate {
|
||||||
// retrieve back the previous obj name for later use.
|
// retrieve back the previous obj name for later use.
|
||||||
fsvc, err := deploy.fsCache.GetByFunctionUID(fn.Metadata.UID)
|
fsvc, err := deploy.fsCache.GetByFunctionUID(fn.Metadata.UID)
|
||||||
if err == nil {
|
if err != nil {
|
||||||
objName = fsvc.Name
|
return nil, err
|
||||||
}
|
}
|
||||||
|
objName = fsvc.Name
|
||||||
}
|
}
|
||||||
deployLabels := deploy.getDeployLabels(fn.Metadata, env.Metadata)
|
deployLabels := deploy.getDeployLabels(fn.Metadata, env.Metadata)
|
||||||
|
|
||||||
@@ -337,6 +340,7 @@ func (deploy *NewDeploy) fnCreate(fn *fv1.Function, firstcreate bool) (*fscache.
|
|||||||
return nil, errors.Wrapf(err, "error creating service %v", objName)
|
return nil, errors.Wrapf(err, "error creating service %v", objName)
|
||||||
}
|
}
|
||||||
svcAddress := fmt.Sprintf("%v.%v", svc.Name, svc.Namespace)
|
svcAddress := fmt.Sprintf("%v.%v", svc.Name, svc.Namespace)
|
||||||
|
|
||||||
depl, err := deploy.createOrGetDeployment(fn, env, objName, deployLabels, ns, firstcreate)
|
depl, err := deploy.createOrGetDeployment(fn, env, objName, deployLabels, ns, firstcreate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
deploy.logger.Error("error creating deployment", zap.Error(err), zap.String("deployment", objName))
|
deploy.logger.Error("error creating deployment", zap.Error(err), zap.String("deployment", objName))
|
||||||
|
|||||||
Reference in New Issue
Block a user