Skip to content

Commit 302479e

Browse files
Maisem Alik8s-ci-robot
Maisem Ali
authored andcommitted
Allow machine controller to function without the need of a cluster object. (#644)
1 parent 361d0e2 commit 302479e

File tree

1 file changed

+10
-37
lines changed

1 file changed

+10
-37
lines changed

pkg/controller/machine/controller.go

Lines changed: 10 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,13 @@ func (r *ReconcileMachine) Reconcile(request reconcile.Request) (reconcile.Resul
113113
name := m.Name
114114
klog.Infof("Running reconcile Machine for %s\n", name)
115115

116+
// Cluster might be nil as some providers might not require a cluster object
117+
// for machine management.
118+
cluster, err := r.getCluster(ctx, m)
119+
if err != nil {
120+
// Just log the error here.
121+
klog.V(4).Infof("Cluster not found, machine actuation might fail: %v", err)
122+
}
116123
// If object hasn't been deleted and doesn't have a finalizer, add one
117124
// Add a finalizer to newly created objects.
118125
if m.ObjectMeta.DeletionTimestamp.IsZero() &&
@@ -138,7 +145,7 @@ func (r *ReconcileMachine) Reconcile(request reconcile.Request) (reconcile.Resul
138145
return reconcile.Result{}, nil
139146
}
140147
klog.Infof("reconciling machine object %v triggers delete.", name)
141-
if err := r.delete(ctx, m); err != nil {
148+
if err := r.actuator.Delete(ctx, cluster, m); err != nil {
142149
klog.Errorf("Error deleting machine object %v; %v", name, err)
143150
if requeueErr, ok := err.(*controllerError.RequeueAfterError); ok {
144151
klog.Infof("Actuator returned requeue-after error: %v", requeueErr)
@@ -157,19 +164,14 @@ func (r *ReconcileMachine) Reconcile(request reconcile.Request) (reconcile.Resul
157164
return reconcile.Result{}, nil
158165
}
159166

160-
cluster, err := r.getCluster(ctx, m)
161-
if err != nil {
162-
return reconcile.Result{}, err
163-
}
164-
165167
exist, err := r.actuator.Exists(ctx, cluster, m)
166168
if err != nil {
167169
klog.Errorf("Error checking existence of machine instance for machine object %v; %v", name, err)
168170
return reconcile.Result{}, err
169171
}
170172
if exist {
171173
klog.Infof("Reconciling machine object %v triggers idempotent update.", name)
172-
if err := r.update(ctx, m); err != nil {
174+
if err := r.actuator.Update(ctx, cluster, m); err != nil {
173175
if requeueErr, ok := err.(*controllerError.RequeueAfterError); ok {
174176
klog.Infof("Actuator returned requeue-after error: %v", requeueErr)
175177
return reconcile.Result{Requeue: true, RequeueAfter: requeueErr.RequeueAfter}, nil
@@ -180,7 +182,7 @@ func (r *ReconcileMachine) Reconcile(request reconcile.Request) (reconcile.Resul
180182
}
181183
// Machine resource created. Machine does not yet exist.
182184
klog.Infof("Reconciling machine object %v triggers idempotent create.", m.ObjectMeta.Name)
183-
if err := r.create(ctx, m); err != nil {
185+
if err := r.actuator.Create(ctx, cluster, m); err != nil {
184186
klog.Warningf("unable to create machine %v: %v", name, err)
185187
if requeueErr, ok := err.(*controllerError.RequeueAfterError); ok {
186188
klog.Infof("Actuator returned requeue-after error: %v", requeueErr)
@@ -191,35 +193,6 @@ func (r *ReconcileMachine) Reconcile(request reconcile.Request) (reconcile.Resul
191193
return reconcile.Result{}, nil
192194
}
193195

194-
func (r *ReconcileMachine) create(ctx context.Context, machine *clusterv1.Machine) error {
195-
cluster, err := r.getCluster(ctx, machine)
196-
if err != nil {
197-
return err
198-
}
199-
200-
return r.actuator.Create(ctx, cluster, machine)
201-
}
202-
203-
func (r *ReconcileMachine) update(ctx context.Context, new_machine *clusterv1.Machine) error {
204-
cluster, err := r.getCluster(ctx, new_machine)
205-
if err != nil {
206-
return err
207-
}
208-
209-
// TODO: Assume single master for now.
210-
// TODO: Assume we never change the role for the machines. (Master->Node, Node->Master, etc)
211-
return r.actuator.Update(ctx, cluster, new_machine)
212-
}
213-
214-
func (r *ReconcileMachine) delete(ctx context.Context, machine *clusterv1.Machine) error {
215-
cluster, err := r.getCluster(ctx, machine)
216-
if err != nil {
217-
return err
218-
}
219-
220-
return r.actuator.Delete(ctx, cluster, machine)
221-
}
222-
223196
func (r *ReconcileMachine) getCluster(ctx context.Context, machine *clusterv1.Machine) (*clusterv1.Cluster, error) {
224197
clusterList := clusterv1.ClusterList{}
225198
listOptions := &client.ListOptions{

0 commit comments

Comments
 (0)