mirror of
https://github.com/fluxcd/flagger.git
synced 2026-04-15 06:57:34 +00:00
pkg/canary: refator error messages
This commit is contained in:
@@ -272,7 +272,7 @@ func (ct *ConfigTracker) CreatePrimaryConfigs(cd *flaggerv1.Canary, refs map[str
|
||||
case ConfigRefMap:
|
||||
config, err := ct.KubeClient.CoreV1().ConfigMaps(cd.Namespace).Get(ref.Name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return fmt.Errorf("configmap %s.%s query failed : %w", ref.Name, cd.Name, err)
|
||||
return fmt.Errorf("configmap %s.%s get query failed : %w", ref.Name, cd.Name, err)
|
||||
}
|
||||
primaryName := fmt.Sprintf("%s-primary", config.GetName())
|
||||
primaryConfigMap := &corev1.ConfigMap{
|
||||
@@ -309,7 +309,7 @@ func (ct *ConfigTracker) CreatePrimaryConfigs(cd *flaggerv1.Canary, refs map[str
|
||||
case ConfigRefSecret:
|
||||
secret, err := ct.KubeClient.CoreV1().Secrets(cd.Namespace).Get(ref.Name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
return fmt.Errorf("secret %s.%s get query failed : %w", ref.Name, cd.Name, err)
|
||||
}
|
||||
primaryName := fmt.Sprintf("%s-primary", secret.GetName())
|
||||
primarySecret := &corev1.Secret{
|
||||
|
||||
@@ -32,7 +32,7 @@ func (c *DaemonSetController) ScaleToZero(cd *flaggerv1.Canary) error {
|
||||
targetName := cd.Spec.TargetRef.Name
|
||||
dae, err := c.kubeClient.AppsV1().DaemonSets(cd.Namespace).Get(targetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return fmt.Errorf("daemonset %s.%s query error: %w", targetName, cd.Namespace, err)
|
||||
return fmt.Errorf("daemonset %s.%s get query error: %w", targetName, cd.Namespace, err)
|
||||
}
|
||||
|
||||
daeCopy := dae.DeepCopy()
|
||||
@@ -72,8 +72,8 @@ func (c *DaemonSetController) ScaleFromZero(cd *flaggerv1.Canary) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Initialize creates the primary DaemonSet and
|
||||
// delete the canary DaemonSet and returns the pod selector label and container ports
|
||||
// Initialize creates the primary DaemonSet, scales down the canary DaemonSet,
|
||||
// and returns the pod selector label and container ports
|
||||
func (c *DaemonSetController) Initialize(cd *flaggerv1.Canary, skipLivenessChecks bool) (err error) {
|
||||
err = c.createPrimaryDaemonSet(cd)
|
||||
if err != nil {
|
||||
@@ -87,7 +87,8 @@ func (c *DaemonSetController) Initialize(cd *flaggerv1.Canary, skipLivenessCheck
|
||||
}
|
||||
}
|
||||
|
||||
c.logger.With("canary", fmt.Sprintf("%s.%s", cd.Name, cd.Namespace)).Infof("Scaling down %s.%s", cd.Spec.TargetRef.Name, cd.Namespace)
|
||||
c.logger.With("canary", fmt.Sprintf("%s.%s", cd.Name, cd.Namespace)).
|
||||
Infof("Scaling down DaemonSet %s.%s", cd.Spec.TargetRef.Name, cd.Namespace)
|
||||
if err := c.ScaleToZero(cd); err != nil {
|
||||
return fmt.Errorf("ScaleToZero failed: %w", err)
|
||||
}
|
||||
|
||||
@@ -35,10 +35,10 @@ func (c *DaemonSetController) IsCanaryReady(cd *flaggerv1.Canary) (bool, error)
|
||||
return true, fmt.Errorf("daemonset %s.%s get query error: %w", targetName, cd.Namespace, err)
|
||||
}
|
||||
|
||||
retriable, err := c.isDaemonSetReady(cd, canary)
|
||||
retryable, err := c.isDaemonSetReady(cd, canary)
|
||||
if err != nil {
|
||||
return retriable, fmt.Errorf("canary damonset %s.%s not ready with retryablility: %v: %w",
|
||||
targetName, cd.Namespace, retriable, err)
|
||||
return retryable, fmt.Errorf("canary damonset %s.%s not ready with retryable %v: %w",
|
||||
targetName, cd.Namespace, retryable, err)
|
||||
}
|
||||
return true, nil
|
||||
}
|
||||
|
||||
@@ -30,33 +30,31 @@ type DeploymentController struct {
|
||||
// scales to zero the canary deployment and returns the pod selector label and container ports
|
||||
func (c *DeploymentController) Initialize(cd *flaggerv1.Canary, skipLivenessChecks bool) (err error) {
|
||||
primaryName := fmt.Sprintf("%s-primary", cd.Spec.TargetRef.Name)
|
||||
|
||||
err = c.createPrimaryDeployment(cd)
|
||||
if err != nil {
|
||||
return fmt.Errorf("createPrimaryDeployment %s.%s failed: %w", primaryName, cd.Namespace, err)
|
||||
if err := c.createPrimaryDeployment(cd); err != nil {
|
||||
return fmt.Errorf("createPrimaryDeployment failed: %w", err)
|
||||
}
|
||||
|
||||
if cd.Status.Phase == "" || cd.Status.Phase == flaggerv1.CanaryPhaseInitializing {
|
||||
if !skipLivenessChecks && !cd.SkipAnalysis() {
|
||||
if err := c.IsPrimaryReady(cd); err != nil {
|
||||
return fmt.Errorf("primary deployment %s.%s not ready: %w", primaryName, cd.Namespace, err)
|
||||
return fmt.Errorf("IsPrimaryReady failed: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
c.logger.With("canary", fmt.Sprintf("%s.%s", cd.Name, cd.Namespace)).Infof("Scaling down %s.%s", cd.Spec.TargetRef.Name, cd.Namespace)
|
||||
c.logger.With("canary", fmt.Sprintf("%s.%s", cd.Name, cd.Namespace)).
|
||||
Infof("Scaling down Deployment %s.%s", cd.Spec.TargetRef.Name, cd.Namespace)
|
||||
if err := c.ScaleToZero(cd); err != nil {
|
||||
return fmt.Errorf("scaling down canary daemon set %s.%s failed: %w", cd.Spec.TargetRef.Name, cd.Namespace, err)
|
||||
}
|
||||
}
|
||||
|
||||
if cd.Spec.AutoscalerRef != nil {
|
||||
switch cd.Spec.AutoscalerRef.Kind {
|
||||
case "HorizontalPodAutoscaler":
|
||||
if cd.Spec.AutoscalerRef.Kind == "HorizontalPodAutoscaler" {
|
||||
if err := c.reconcilePrimaryHpa(cd, true); err != nil {
|
||||
return fmt.Errorf(
|
||||
"initial reconcilePrimaryHpa for %s.%s failed: %w", primaryName, cd.Namespace, err)
|
||||
}
|
||||
default:
|
||||
} else {
|
||||
return fmt.Errorf("cd.Spec.AutoscalerRef.Kind is invalid: %s", cd.Spec.AutoscalerRef.Kind)
|
||||
}
|
||||
}
|
||||
@@ -70,7 +68,7 @@ func (c *DeploymentController) Promote(cd *flaggerv1.Canary) error {
|
||||
|
||||
canary, err := c.kubeClient.AppsV1().Deployments(cd.Namespace).Get(targetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return fmt.Errorf("deployment %s.%s query error: %v", targetName, cd.Namespace, err)
|
||||
return fmt.Errorf("deployment %s.%s get query error: %w", targetName, cd.Namespace, err)
|
||||
}
|
||||
|
||||
label, err := c.getSelectorLabel(canary)
|
||||
@@ -80,7 +78,7 @@ func (c *DeploymentController) Promote(cd *flaggerv1.Canary) error {
|
||||
|
||||
primary, err := c.kubeClient.AppsV1().Deployments(cd.Namespace).Get(primaryName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return fmt.Errorf("deployment %s.%s query error: %v", primaryName, cd.Namespace, err)
|
||||
return fmt.Errorf("deployment %s.%s get query error: %w", primaryName, cd.Namespace, err)
|
||||
}
|
||||
|
||||
// promote secrets and config maps
|
||||
@@ -137,7 +135,7 @@ func (c *DeploymentController) HasTargetChanged(cd *flaggerv1.Canary) (bool, err
|
||||
targetName := cd.Spec.TargetRef.Name
|
||||
canary, err := c.kubeClient.AppsV1().Deployments(cd.Namespace).Get(targetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("deployment %s.%s query error: %w", targetName, cd.Namespace, err)
|
||||
return false, fmt.Errorf("deployment %s.%s get query error: %w", targetName, cd.Namespace, err)
|
||||
}
|
||||
|
||||
return hasSpecChanged(cd, canary.Spec.Template)
|
||||
@@ -280,7 +278,8 @@ func (c *DeploymentController) createPrimaryDeployment(cd *flaggerv1.Canary) err
|
||||
return fmt.Errorf("creating deployment %s.%s failed: %w", primaryDep.Name, cd.Namespace, err)
|
||||
}
|
||||
|
||||
c.logger.With("canary", fmt.Sprintf("%s.%s", cd.Name, cd.Namespace)).Infof("Deployment %s.%s created", primaryDep.GetName(), cd.Namespace)
|
||||
c.logger.With("canary", fmt.Sprintf("%s.%s", cd.Name, cd.Namespace)).
|
||||
Infof("Deployment %s.%s created", primaryDep.GetName(), cd.Namespace)
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -335,7 +334,7 @@ func (c *DeploymentController) reconcilePrimaryHpa(cd *flaggerv1.Canary, init bo
|
||||
"HorizontalPodAutoscaler %s.%s created", primaryHpa.GetName(), cd.Namespace)
|
||||
return nil
|
||||
} else if err != nil {
|
||||
return fmt.Errorf("HorizontalPodAutoscaler %s.%s exists but get query failed: %w",
|
||||
return fmt.Errorf("HorizontalPodAutoscaler %s.%s get query failed: %w",
|
||||
primaryHpa.Name, primaryHpa.Namespace, err)
|
||||
}
|
||||
|
||||
|
||||
@@ -42,11 +42,11 @@ func (c *DeploymentController) IsCanaryReady(cd *flaggerv1.Canary) (bool, error)
|
||||
return true, fmt.Errorf("deployment %s.%s get query error: %w", targetName, cd.Namespace, err)
|
||||
}
|
||||
|
||||
retriable, err := c.isDeploymentReady(canary, cd.GetProgressDeadlineSeconds())
|
||||
retryable, err := c.isDeploymentReady(canary, cd.GetProgressDeadlineSeconds())
|
||||
if err != nil {
|
||||
return retriable, fmt.Errorf(
|
||||
"canary deployment %s.%s not ready with retriablility %v: %w",
|
||||
targetName, cd.Namespace, retriable, err,
|
||||
return retryable, fmt.Errorf(
|
||||
"canary deployment %s.%s not ready with retryable %v: %w",
|
||||
targetName, cd.Namespace, retryable, err,
|
||||
)
|
||||
}
|
||||
return true, nil
|
||||
|
||||
@@ -247,8 +247,7 @@ func updateStatusWithUpgrade(flaggerClient clientset.Interface, cd *flaggerv1.Ca
|
||||
_, err := flaggerClient.FlaggerV1beta1().Canaries(cd.Namespace).UpdateStatus(cd)
|
||||
if err != nil && strings.Contains(err.Error(), "flagger.app/v1alpha") {
|
||||
// upgrade alpha resource
|
||||
_, updateErr := flaggerClient.FlaggerV1beta1().Canaries(cd.Namespace).Update(cd)
|
||||
if updateErr != nil {
|
||||
if _, updateErr := flaggerClient.FlaggerV1beta1().Canaries(cd.Namespace).Update(cd); updateErr != nil {
|
||||
return fmt.Errorf("updating canary %s.%s from v1alpha to v1beta failed: %w", cd.Name, cd.Namespace, updateErr)
|
||||
}
|
||||
// retry status update
|
||||
|
||||
Reference in New Issue
Block a user