Skip to content

Commit

Permalink
fix sidekick pod create issue
Browse files Browse the repository at this point in the history
Signed-off-by: Mehedi Hasan <[email protected]>
  • Loading branch information
heheh13 committed Mar 2, 2023
1 parent 9848f83 commit d069f10
Showing 1 changed file with 41 additions and 11 deletions.
52 changes: 41 additions & 11 deletions pkg/controllers/apps/sidekick_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@ package apps
import (
"context"
"fmt"
"k8s.io/klog/v2"
"regexp"
"sort"
"strconv"
"time"

appsv1alpha1 "kubeops.dev/sidekick/apis/apps/v1alpha1"

Expand Down Expand Up @@ -69,6 +71,8 @@ type SidekickReconciler struct {
// For more details, check Reconcile and its Result here:
// - https://pkg.go.dev/sigs.k8s.io/[email protected]/pkg/reconcile
func (r *SidekickReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {

fmt.Println("reconlice called with -------------->", req.NamespacedName)
logger := log.FromContext(ctx, "sidekick", req.Name, "ns", req.Namespace)
ctx = log.IntoContext(ctx, logger)

Expand All @@ -86,16 +90,28 @@ func (r *SidekickReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c
var pod corev1.Pod
e2 := r.Get(ctx, req.NamespacedName, &pod)
if e2 == nil {
r.Delete(ctx, &pod) // TODO
err := r.Delete(ctx, &pod)
klog.Error(err)
if err != nil {
return ctrl.Result{}, err
}

sidekick.Status.Leader.Name = ""
sidekick.Status.Pod = ""
sidekick.Status.Phase = "Current"
sidekick.Status.ObservedGeneration = sidekick.GetGeneration()
r.Status().Update(ctx, &sidekick) // TODO
return ctrl.Result{}, nil // client.IgnoreNotFound(err)
err = r.Status().Update(ctx, &sidekick)
if err != nil {
klog.Error(err)
return ctrl.Result{}, err
} // TODO
return ctrl.Result{}, nil // client.IgnoreNotFound(err)
} else if err != nil {
return ctrl.Result{}, client.IgnoreNotFound(err)
klog.Error(err)
return ctrl.Result{
Requeue: true,
RequeueAfter: time.Second * 10,
}, client.IgnoreNotFound(err)
}
} else if err != nil {
return ctrl.Result{}, client.IgnoreNotFound(err)
Expand All @@ -112,22 +128,31 @@ func (r *SidekickReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c
if expectedHash != actualHash ||
leader.Name != pod.Annotations[keyLeader] ||
leader.Spec.NodeName != pod.Spec.NodeName {
r.Delete(ctx, &pod) // TODO
err := r.Delete(ctx, &pod)
if err != nil {
return ctrl.Result{}, err
} // TODO

sidekick.Status.Leader.Name = ""
sidekick.Status.Pod = ""
sidekick.Status.Phase = "Current"
sidekick.Status.ObservedGeneration = sidekick.GetGeneration()
r.Status().Update(ctx, &sidekick) // TODO
return ctrl.Result{}, nil // client.IgnoreNotFound(err)
err = r.Status().Update(ctx, &sidekick)
if err != nil {
return ctrl.Result{}, err
} // TODO
return ctrl.Result{}, nil // client.IgnoreNotFound(err)
}

// sidekick.Status.Leader.Name = ""
sidekick.Status.Pod = pod.Status.Phase
sidekick.Status.Phase = "Current"
sidekick.Status.ObservedGeneration = sidekick.GetGeneration()
r.Status().Update(ctx, &sidekick) // TODO
return ctrl.Result{}, nil // client.IgnoreNotFound(err)
err := r.Status().Update(ctx, &sidekick)
if err != nil {
return ctrl.Result{}, err
} // TODO
return ctrl.Result{}, nil // client.IgnoreNotFound(err)
} else if !errors.IsNotFound(e2) {
return ctrl.Result{}, e2
}
Expand Down Expand Up @@ -214,8 +239,12 @@ func (r *SidekickReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c
sidekick.Status.Pod = pod.Status.Phase
sidekick.Status.Phase = "Current"
sidekick.Status.ObservedGeneration = sidekick.GetGeneration()
r.Status().Update(ctx, &sidekick) // TODO
return ctrl.Result{}, nil // client.IgnoreNotFound(err)
err = r.Status().Update(ctx, &sidekick)
if err != nil {
return ctrl.Result{}, err
} // TODO
klog.Info("comes here after reconcile")
return ctrl.Result{}, nil // client.IgnoreNotFound(err)
}

func convContainer(leader *corev1.Pod, c appsv1alpha1.Container) (*corev1.Container, error) {
Expand Down Expand Up @@ -364,6 +393,7 @@ func (r *SidekickReconciler) getLeader(ctx context.Context, sidekick appsv1alpha

// SetupWithManager sets up the controller with the Manager.
func (r *SidekickReconciler) SetupWithManager(mgr ctrl.Manager) error {
fmt.Println("------------------------------->setup with manager called---------------------> ")
leaderHandler := handler.EnqueueRequestsFromMapFunc(func(a client.Object) []reconcile.Request {
sidekicks := &appsv1alpha1.SidekickList{}
if err := r.List(context.Background(), sidekicks, client.InNamespace(a.GetNamespace())); err != nil {
Expand Down

0 comments on commit d069f10

Please sign in to comment.