Skip to content

Commit 6be6eec

Browse files
committed
fix: rewrite scale down code to be resilient to API calls failures
Delete the node first, then remove the machine from etcd. Also implement a test that verifies rolling update with 2 running control planes. Signed-off-by: Artem Chernyshev <[email protected]>
1 parent db4f973 commit 6be6eec

File tree

8 files changed

+472
-222
lines changed

8 files changed

+472
-222
lines changed

controllers/configs.go

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ package controllers
77
import (
88
"context"
99
"fmt"
10-
"net"
1110
"reflect"
12-
"time"
1311

1412
"github.com/pkg/errors"
1513
cabptv1 "github.com/siderolabs/cluster-api-bootstrap-provider-talos/api/v1alpha3"
@@ -20,29 +18,10 @@ import (
2018
v1 "k8s.io/api/core/v1"
2119
"k8s.io/apimachinery/pkg/runtime/schema"
2220
"k8s.io/apimachinery/pkg/types"
23-
"k8s.io/client-go/kubernetes"
24-
"k8s.io/client-go/util/connrotation"
2521
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
2622
"sigs.k8s.io/controller-runtime/pkg/client"
2723
)
2824

29-
type kubernetesClient struct {
30-
*kubernetes.Clientset
31-
32-
dialer *connrotation.Dialer
33-
}
34-
35-
// Close kubernetes client.
36-
func (k *kubernetesClient) Close() error {
37-
k.dialer.CloseAll()
38-
39-
return nil
40-
}
41-
42-
func newDialer() *connrotation.Dialer {
43-
return connrotation.NewDialer((&net.Dialer{Timeout: 30 * time.Second, KeepAlive: 30 * time.Second}).DialContext)
44-
}
45-
4625
// talosconfigForMachine will generate a talosconfig that uses *all* found addresses as the endpoints.
4726
func (r *TalosControlPlaneReconciler) talosconfigForMachines(ctx context.Context, tcp *controlplanev1.TalosControlPlane, machines ...clusterv1.Machine) (*talosclient.Client, error) {
4827
if len(machines) == 0 {

controllers/consts.go

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)