Skip to content

Commit 00d9b4c

Browse files
authored
Merge pull request #309 from medik8s/revert-306-check-machineapi-caps-0
Revert "Ensure MachineAPI is enabled before trying to use its resources"
2 parents 830a444 + a0a590d commit 00d9b4c

File tree

13 files changed

+78
-146
lines changed

13 files changed

+78
-146
lines changed

controllers/cluster/capabilities.go

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

controllers/cluster/upgrade_checker.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import (
1313

1414
v1 "github.com/openshift/api/config/v1"
1515
clusterversion "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
16+
17+
"github.com/medik8s/node-healthcheck-operator/controllers/utils"
1618
)
1719

1820
var unsupportedUpgradeCheckerErr = errors.New(
@@ -64,8 +66,12 @@ func (n *noopClusterUpgradeStatusChecker) Check() (bool, error) {
6466

6567
// NewClusterUpgradeStatusChecker will return some implementation of a checker or err in case it can't
6668
// reliably detect which implementation to use.
67-
func NewClusterUpgradeStatusChecker(mgr manager.Manager, caps Capabilities) (UpgradeChecker, error) {
68-
if !caps.IsOnOpenshift {
69+
func NewClusterUpgradeStatusChecker(mgr manager.Manager) (UpgradeChecker, error) {
70+
openshift, err := utils.IsOnOpenshift(mgr.GetConfig())
71+
if err != nil {
72+
return nil, err
73+
}
74+
if !openshift {
6975
return &noopClusterUpgradeStatusChecker{}, nil
7076
}
7177
checker, err := newOpenshiftClusterUpgradeChecker(mgr)

controllers/console/plugin.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,12 @@ import (
2424

2525
apierrors "k8s.io/apimachinery/pkg/api/errors"
2626
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
27+
"k8s.io/client-go/rest"
2728
"sigs.k8s.io/controller-runtime/pkg/client"
2829

2930
"github.com/openshift/api/console/v1alpha1"
3031

31-
"github.com/medik8s/node-healthcheck-operator/controllers/cluster"
32+
"github.com/medik8s/node-healthcheck-operator/controllers/utils"
3233
)
3334

3435
const (
@@ -46,10 +47,12 @@ const (
4647
// HEADS UP: consider cleanup of old resources in case of name changes or removals!
4748
//
4849
// TODO image reference to console plugin in CSV?
49-
func CreateOrUpdatePlugin(ctx context.Context, cl client.Client, caps cluster.Capabilities, namespace string, log logr.Logger) error {
50+
func CreateOrUpdatePlugin(ctx context.Context, cl client.Client, config *rest.Config, namespace string, log logr.Logger) error {
5051

5152
// check if we are on OCP
52-
if !caps.IsOnOpenshift {
53+
if isOpenshift, err := utils.IsOnOpenshift(config); err != nil {
54+
return errors.Wrap(err, "failed to check if we are on Openshift")
55+
} else if !isOpenshift {
5356
log.Info("we are not on Openshift, skipping console plugin activation")
5457
return nil
5558
}

controllers/initializer/init.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import (
66
"github.com/go-logr/logr"
77
"github.com/pkg/errors"
88

9+
"k8s.io/client-go/rest"
910
ctrl "sigs.k8s.io/controller-runtime"
1011
"sigs.k8s.io/controller-runtime/pkg/client"
1112

12-
"github.com/medik8s/node-healthcheck-operator/controllers/cluster"
1313
"github.com/medik8s/node-healthcheck-operator/controllers/console"
1414
"github.com/medik8s/node-healthcheck-operator/controllers/rbac"
1515
"github.com/medik8s/node-healthcheck-operator/controllers/utils"
@@ -20,17 +20,17 @@ import (
2020
// - create default NHC
2121
// - create console plugin
2222
type initializer struct {
23-
cl client.Client
24-
capabilities cluster.Capabilities
25-
logger logr.Logger
23+
cl client.Client
24+
config *rest.Config
25+
logger logr.Logger
2626
}
2727

2828
// New returns a new Initializer
29-
func New(mgr ctrl.Manager, caps cluster.Capabilities, logger logr.Logger) *initializer {
29+
func New(mgr ctrl.Manager, logger logr.Logger) *initializer {
3030
return &initializer{
31-
cl: mgr.GetClient(),
32-
capabilities: caps,
33-
logger: logger,
31+
cl: mgr.GetClient(),
32+
config: mgr.GetConfig(),
33+
logger: logger,
3434
}
3535
}
3636

@@ -46,7 +46,7 @@ func (i *initializer) Start(ctx context.Context) error {
4646
return errors.Wrap(err, "failed to create or update RBAC aggregation role")
4747
}
4848

49-
if err = console.CreateOrUpdatePlugin(ctx, i.cl, i.capabilities, ns, ctrl.Log.WithName("console-plugin")); err != nil {
49+
if err = console.CreateOrUpdatePlugin(ctx, i.cl, i.config, ns, ctrl.Log.WithName("console-plugin")); err != nil {
5050
return errors.Wrap(err, "failed to create or update the console plugin")
5151
}
5252

controllers/initializer/init_test.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,14 @@ import (
77
. "github.com/onsi/gomega"
88

99
ctrl "sigs.k8s.io/controller-runtime"
10-
11-
"github.com/medik8s/node-healthcheck-operator/controllers/cluster"
1210
)
1311

1412
var _ = Describe("Init", func() {
1513

1614
var initializer *initializer
1715

1816
JustBeforeEach(func() {
19-
caps := cluster.Capabilities{IsOnOpenshift: true, HasMachineAPI: true}
20-
initializer = New(k8sManager, caps, ctrl.Log.WithName("test initializer"))
17+
initializer = New(k8sManager, ctrl.Log.WithName("test initializer"))
2118
})
2219

2320
AfterEach(func() {

controllers/initializer/suite_test.go

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ import (
3636
"sigs.k8s.io/controller-runtime/pkg/manager"
3737
"sigs.k8s.io/controller-runtime/pkg/metrics/server"
3838

39-
consolev1alpha "github.com/openshift/api/console/v1alpha1"
40-
4139
remediationv1alpha1 "github.com/medik8s/node-healthcheck-operator/api/v1alpha1"
4240
)
4341

@@ -65,13 +63,7 @@ var _ = BeforeSuite(func() {
6563

6664
By("bootstrapping test environment")
6765
testEnv = &envtest.Environment{
68-
CRDInstallOptions: envtest.CRDInstallOptions{
69-
Paths: []string{
70-
filepath.Join("..", "..", "vendor", "github.com", "openshift", "api", "console", "v1alpha1"),
71-
filepath.Join("..", "..", "config", "crd", "bases"),
72-
},
73-
ErrorIfPathMissing: true,
74-
},
66+
CRDDirectoryPaths: []string{filepath.Join("..", "..", "config", "crd", "bases")},
7567
}
7668

7769
var err error
@@ -80,8 +72,8 @@ var _ = BeforeSuite(func() {
8072
Expect(cfg).NotTo(BeNil())
8173

8274
scheme.AddToScheme(scheme.Scheme)
83-
Expect(remediationv1alpha1.AddToScheme(scheme.Scheme)).NotTo(HaveOccurred())
84-
Expect(consolev1alpha.AddToScheme(scheme.Scheme)).NotTo(HaveOccurred())
75+
err = remediationv1alpha1.AddToScheme(scheme.Scheme)
76+
Expect(err).NotTo(HaveOccurred())
8577

8678
k8sClient, err = client.New(cfg, client.Options{Scheme: scheme.Scheme})
8779
Expect(err).NotTo(HaveOccurred())

controllers/machinehealthcheck_controller_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import (
3333

3434
machinev1 "github.com/openshift/api/machine/v1beta1"
3535

36-
"github.com/medik8s/node-healthcheck-operator/controllers/cluster"
3736
"github.com/medik8s/node-healthcheck-operator/controllers/featuregates"
3837
"github.com/medik8s/node-healthcheck-operator/controllers/mhc"
3938
"github.com/medik8s/node-healthcheck-operator/controllers/resources"
@@ -2388,8 +2387,7 @@ func newFakeReconcilerWithCustomRecorder(recorder record.EventRecorder, initObje
23882387
WithRuntimeObjects(initObjects...).
23892388
WithStatusSubresource(&machinev1.MachineHealthCheck{}).
23902389
Build()
2391-
caps := cluster.Capabilities{IsOnOpenshift: false, HasMachineAPI: false}
2392-
mhcChecker, _ := mhc.NewMHCChecker(k8sManager, caps, nil)
2390+
mhcChecker, _ := mhc.NewMHCChecker(k8sManager, false, nil)
23932391
return &MachineHealthCheckReconciler{
23942392
Client: fakeClient,
23952393
Recorder: recorder,

controllers/mhc/checker.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import (
1111
"sigs.k8s.io/controller-runtime/pkg/manager"
1212

1313
"github.com/openshift/api/machine/v1beta1"
14-
15-
"github.com/medik8s/node-healthcheck-operator/controllers/cluster"
1614
)
1715

1816
// NodeConditionTerminating is the node condition type used by the termination handler MHC
@@ -27,9 +25,9 @@ type Checker interface {
2725
}
2826

2927
// NewMHCChecker creates a new Checker
30-
func NewMHCChecker(mgr manager.Manager, caps cluster.Capabilities, mhcEvents chan<- event.GenericEvent) (Checker, error) {
28+
func NewMHCChecker(mgr manager.Manager, onOpenshift bool, mhcEvents chan<- event.GenericEvent) (Checker, error) {
3129

32-
if !caps.HasMachineAPI {
30+
if !onOpenshift {
3331
return DummyChecker{}, nil
3432
}
3533

controllers/nodehealthcheck_controller.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ type NodeHealthCheckReconciler struct {
8585
Recorder record.EventRecorder
8686
ClusterUpgradeStatusChecker cluster.UpgradeChecker
8787
MHCChecker mhc.Checker
88-
Capabilities cluster.Capabilities
88+
OnOpenShift bool
8989
MHCEvents chan event.GenericEvent
9090
controller controller.Controller
9191
watches map[string]struct{}
@@ -163,7 +163,7 @@ func (r *NodeHealthCheckReconciler) Reconcile(ctx context.Context, req ctrl.Requ
163163
if err != nil {
164164
return result, err
165165
}
166-
resourceManager := resources.NewManager(r.Client, ctx, r.Log, r.Capabilities.HasMachineAPI, leaseManager, r.Recorder)
166+
resourceManager := resources.NewManager(r.Client, ctx, r.Log, r.OnOpenShift, leaseManager, r.Recorder)
167167

168168
// always check if we need to patch status before we exit Reconcile
169169
nhcOrig := nhc.DeepCopy()
@@ -693,7 +693,7 @@ func (r *NodeHealthCheckReconciler) isControlPlaneRemediationAllowed(ctx context
693693
}
694694

695695
// no ongoing control plane remediation, check etcd quorum
696-
if !r.Capabilities.IsOnOpenshift {
696+
if !r.OnOpenShift {
697697
// etcd quorum PDB is only installed in OpenShift
698698
return true, nil
699699
}

controllers/resources/manager.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,23 +51,23 @@ func (r RemediationCRNotOwned) Error() string { return r.msg }
5151

5252
type manager struct {
5353
client.Client
54-
ctx context.Context
55-
log logr.Logger
56-
hasMachineAPI bool
57-
leaseManager LeaseManager
58-
recorder record.EventRecorder
54+
ctx context.Context
55+
log logr.Logger
56+
onOpenshift bool
57+
leaseManager LeaseManager
58+
recorder record.EventRecorder
5959
}
6060

6161
var _ Manager = &manager{}
6262

63-
func NewManager(c client.Client, ctx context.Context, log logr.Logger, hasMachineAPI bool, leaseManager LeaseManager, recorder record.EventRecorder) Manager {
63+
func NewManager(c client.Client, ctx context.Context, log logr.Logger, onOpenshift bool, leaseManager LeaseManager, recorder record.EventRecorder) Manager {
6464
return &manager{
65-
Client: c,
66-
ctx: ctx,
67-
log: log.WithName("resource manager"),
68-
hasMachineAPI: hasMachineAPI,
69-
leaseManager: leaseManager,
70-
recorder: recorder,
65+
Client: c,
66+
ctx: ctx,
67+
log: log.WithName("resource manager"),
68+
onOpenshift: onOpenshift,
69+
leaseManager: leaseManager,
70+
recorder: recorder,
7171
}
7272
}
7373

@@ -78,7 +78,7 @@ func (m *manager) GenerateRemediationCRForNode(node *corev1.Node, owner client.O
7878
// also set the node's machine as owner ref if possible
7979
// TODO also handle CAPI clusters / machines
8080
var machineOwnerRef *metav1.OwnerReference
81-
if m.hasMachineAPI {
81+
if m.onOpenshift {
8282
ref, machineNamespace, err := m.getOwningMachineWithNamespace(node)
8383
if err != nil {
8484
return nil, err

0 commit comments

Comments
 (0)