Skip to content

Commit 05fabd6

Browse files
authored
fix: fail fast in case of server version retrieval failure (#124)
1 parent 4a5d239 commit 05fabd6

File tree

3 files changed

+11
-17
lines changed

3 files changed

+11
-17
lines changed

cmd/main.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import (
2828

2929
"k8s.io/apimachinery/pkg/runtime"
3030
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
31-
"k8s.io/apimachinery/pkg/version"
3231
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3332
ctrl "sigs.k8s.io/controller-runtime"
3433
"sigs.k8s.io/controller-runtime/pkg/healthz"
@@ -82,10 +81,10 @@ func main() {
8281

8382
versionInfo, err := clusterInfo.GetClusterVersion()
8483
if err != nil {
85-
setupLog.Error(err, "failed to get cluster version, continuing...")
86-
} else {
87-
setupLog.Info("cluster info", "version", versionInfo.GitVersion)
84+
setupLog.Error(err, "failed to get cluster version")
85+
os.Exit(1)
8886
}
87+
setupLog.Info("cluster info", "version", versionInfo.GitVersion)
8988

9089
podLevelResourcesEnabled := false
9190
if cfg.ValidateFeatureEnabled {
@@ -138,7 +137,7 @@ func main() {
138137

139138
boostMgr := boost.NewManager(mgr.GetClient())
140139
controllersReady := make(chan struct{})
141-
go setupControllers(mgr, boostMgr, cfg, podLevelResourcesEnabled, versionInfo, certsReady,
140+
go setupControllers(mgr, boostMgr, cfg, podLevelResourcesEnabled, versionInfo.GitVersion, certsReady,
142141
controllersReady)
143142
if err := mgr.AddHealthzCheck("healthz", healthz.Ping); err != nil {
144143
setupLog.Error(err, "unable to set up health check")
@@ -159,7 +158,7 @@ func main() {
159158
}
160159

161160
func setupControllers(mgr ctrl.Manager, boostMgr boost.Manager, cfg *config.Config,
162-
podLevelResourcesEnabled bool, serverVersion *version.Info, certsReady chan struct{},
161+
podLevelResourcesEnabled bool, serverVersion string, certsReady chan struct{},
163162
controllersReady chan struct{}) {
164163
defer close(controllersReady)
165164
setupLog.Info("Waiting for certificate generation to complete")

internal/controller/boost_controller.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ func (r *StartupCPUBoostReconciler) Reconcile(ctx context.Context, req ctrl.Requ
104104

105105
// SetupWithManager sets up the controller with the Manager.
106106
func (r *StartupCPUBoostReconciler) SetupWithManager(mgr ctrl.Manager,
107-
serverVersion *version.Info) error {
107+
serverVersion string) error {
108108
boostPodHandler := NewBoostPodHandler(r.Manager, ctrl.Log.WithName("pod-handler"))
109109
lsPredicate, err := predicate.LabelSelectorPredicate(*boostPodHandler.GetPodLabelSelector())
110110
if err != nil {
@@ -174,7 +174,7 @@ func (r *StartupCPUBoostReconciler) Generic(e event.GenericEvent) bool {
174174

175175
// shouldUseLegacyRevertMode determines if legacy resource revert mode should be used
176176
// basing on server version
177-
func shouldUseLegacyRevertMode(serverVersion *version.Info) (legacyMode bool) {
177+
func shouldUseLegacyRevertMode(serverVersion string) (legacyMode bool) {
178178
return version.CompareKubeAwareVersionStrings(WantedServerVersionForNewRevert,
179-
serverVersion.GitVersion) < 0
179+
serverVersion) < 0
180180
}

internal/controller/boost_controller_test.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import (
3030
"k8s.io/apimachinery/pkg/runtime"
3131
"k8s.io/apimachinery/pkg/types"
3232
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
33-
"k8s.io/apimachinery/pkg/version"
3433
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3534
ctrl "sigs.k8s.io/controller-runtime"
3635
"sigs.k8s.io/controller-runtime/pkg/cache/informertest"
@@ -62,7 +61,7 @@ var _ = Describe("BoostController", func() {
6261
Describe("Setups with manager", func() {
6362
var (
6463
mockCtrlManager *mock.MockCtrlManager
65-
serverVersion *version.Info
64+
serverVersion string
6665
err error
6766
)
6867
BeforeEach(func() {
@@ -83,9 +82,7 @@ var _ = Describe("BoostController", func() {
8382
})
8483
When("server version is newer or equal to 1.32.0", func() {
8584
BeforeEach(func() {
86-
serverVersion = &version.Info{
87-
GitVersion: "v1.32.0",
88-
}
85+
serverVersion = "v1.32.0"
8986
})
9087
It("doesn't error", func() {
9188
Expect(err).NotTo(HaveOccurred())
@@ -96,9 +93,7 @@ var _ = Describe("BoostController", func() {
9693
})
9794
When("server version is less than 1.32.0", func() {
9895
BeforeEach(func() {
99-
serverVersion = &version.Info{
100-
GitVersion: "v1.29.2",
101-
}
96+
serverVersion = "v1.29.2"
10297
})
10398
It("doesn't error", func() {
10499
Expect(err).NotTo(HaveOccurred())

0 commit comments

Comments
 (0)