|
|
@ -287,13 +287,20 @@ func NodeCreate(ctx context.Context, runtime runtimes.Runtime, node *k3d.Node, c |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// NodeDelete deletes an existing node
|
|
|
|
// NodeDelete deletes an existing node
|
|
|
|
func NodeDelete(ctx context.Context, runtime runtimes.Runtime, node *k3d.Node) error { |
|
|
|
func NodeDelete(ctx context.Context, runtime runtimes.Runtime, node *k3d.Node, opts k3d.NodeDeleteOpts) error { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// registry: only delete, if not connected to other networks
|
|
|
|
|
|
|
|
if !opts.SkipRegistryCheck && node.Role == k3d.RegistryRole { |
|
|
|
|
|
|
|
log.Debugln("NodeDelete special case: registry -> not yet implemented") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// delete node
|
|
|
|
if err := runtime.DeleteNode(ctx, node); err != nil { |
|
|
|
if err := runtime.DeleteNode(ctx, node); err != nil { |
|
|
|
log.Error(err) |
|
|
|
log.Error(err) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if node.Role == k3d.ServerRole || node.Role == k3d.AgentRole { |
|
|
|
// update the server loadbalancer
|
|
|
|
|
|
|
|
if !opts.SkipLBUpdate && (node.Role == k3d.ServerRole || node.Role == k3d.AgentRole) { |
|
|
|
cluster, err := ClusterGet(ctx, runtime, &k3d.Cluster{Name: node.Labels[k3d.LabelClusterName]}) |
|
|
|
cluster, err := ClusterGet(ctx, runtime, &k3d.Cluster{Name: node.Labels[k3d.LabelClusterName]}) |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
log.Errorf("Failed to find cluster for node '%s'", node.Name) |
|
|
|
log.Errorf("Failed to find cluster for node '%s'", node.Name) |
|
|
|