Skip to content

Commit 46eed2b

Browse files
Merge pull request #4921 from sairameshv/remove_cgrpv1_4.18
OCPNODE-2276: Set `Upgradeable=False` when cluster is on cgroup `v1`
2 parents 4bcd4e6 + 402b694 commit 46eed2b

File tree

3 files changed

+55
-0
lines changed

3 files changed

+55
-0
lines changed

pkg/operator/operator_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
fakeconfigclientset "github.com/openshift/client-go/config/clientset/versioned/fake"
1111
configlistersv1 "github.com/openshift/client-go/config/listers/config/v1"
1212
"github.com/openshift/library-go/pkg/operator/configobserver/featuregates"
13+
ctrlcommon "github.com/openshift/machine-config-operator/pkg/controller/common"
1314
"github.com/openshift/machine-config-operator/test/helpers"
1415
"github.com/prometheus/client_golang/prometheus/testutil"
1516
"github.com/stretchr/testify/assert"
@@ -70,6 +71,14 @@ func TestMetrics(t *testing.T) {
7071
operatorIndexer.Add(co)
7172
operatorIndexer.Add(kasOperator)
7273

74+
configNode := &configv1.Node{
75+
ObjectMeta: metav1.ObjectMeta{Name: ctrlcommon.ClusterNodeInstanceName},
76+
Spec: configv1.NodeSpec{},
77+
}
78+
configNodeIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})
79+
optr.nodeClusterLister = configlistersv1.NewNodeLister(configNodeIndexer)
80+
configNodeIndexer.Add(configNode)
81+
7382
optr.configClient = fakeconfigclientset.NewSimpleClientset(co, kasOperator)
7483
err := optr.syncAll([]syncFunc{
7584
{name: "fn1",

pkg/operator/status.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,15 @@ func (optr *Operator) syncUpgradeableStatus(co *configv1.ClusterOperator) error
279279
Reason: asExpectedReason,
280280
}
281281

282+
configNode, err := optr.nodeClusterLister.Get(ctrlcommon.ClusterNodeInstanceName)
283+
if err != nil {
284+
return err
285+
}
286+
if configNode.Spec.CgroupMode == configv1.CgroupModeV1 {
287+
coStatusCondition.Status = configv1.ConditionFalse
288+
coStatusCondition.Reason = "ClusterOnCgroupV1"
289+
coStatusCondition.Message = "Cluster is using deprecated cgroup v1, which is removed in 4.19. Please update the `CgroupMode` in the `nodes.config.openshift.io` object to 'v2'. This can be changed back to 'v1' while on 4.18, but must be 'v2' before you update to 4.19. Once updated to 4.19, cgroup v1 is no longer an option"
290+
}
282291
var updating, degraded, interrupted bool
283292
for _, pool := range pools {
284293
// collect updating status but continue to check each pool to see if any pool is degraded

pkg/operator/status_test.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,14 @@ func TestOperatorSyncStatus(t *testing.T) {
690690
configMapIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})
691691
optr.mcoCmLister = corelisterv1.NewConfigMapLister(configMapIndexer)
692692

693+
configNode := &configv1.Node{
694+
ObjectMeta: metav1.ObjectMeta{Name: ctrlcommon.ClusterNodeInstanceName},
695+
Spec: configv1.NodeSpec{},
696+
}
697+
configNodeIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})
698+
optr.nodeClusterLister = configlistersv1.NewNodeLister(configNodeIndexer)
699+
configNodeIndexer.Add(configNode)
700+
693701
for j, sync := range testCase.syncs {
694702
optr.inClusterBringup = sync.inClusterBringUp
695703
if sync.nextVersion != "" {
@@ -755,6 +763,14 @@ func TestInClusterBringUpStayOnErr(t *testing.T) {
755763
},
756764
},
757765
}
766+
767+
configNode := &configv1.Node{
768+
ObjectMeta: metav1.ObjectMeta{Name: ctrlcommon.ClusterNodeInstanceName},
769+
Spec: configv1.NodeSpec{},
770+
}
771+
configNodeIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})
772+
optr.nodeClusterLister = configlistersv1.NewNodeLister(configNodeIndexer)
773+
configNodeIndexer.Add(configNode)
758774
cov1helpers.SetStatusCondition(&co.Status.Conditions, configv1.ClusterOperatorStatusCondition{Type: configv1.OperatorAvailable, Status: configv1.ConditionFalse})
759775
cov1helpers.SetStatusCondition(&co.Status.Conditions, configv1.ClusterOperatorStatusCondition{Type: configv1.OperatorProgressing, Status: configv1.ConditionFalse})
760776
cov1helpers.SetStatusCondition(&co.Status.Conditions, configv1.ClusterOperatorStatusCondition{Type: configv1.OperatorDegraded, Status: configv1.ConditionFalse})
@@ -821,6 +837,13 @@ func TestKubeletSkewUnSupported(t *testing.T) {
821837
})
822838

823839
co := &configv1.ClusterOperator{}
840+
configNode := &configv1.Node{
841+
ObjectMeta: metav1.ObjectMeta{Name: ctrlcommon.ClusterNodeInstanceName},
842+
Spec: configv1.NodeSpec{},
843+
}
844+
configNodeIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})
845+
optr.nodeClusterLister = configlistersv1.NewNodeLister(configNodeIndexer)
846+
configNodeIndexer.Add(configNode)
824847
cov1helpers.SetStatusCondition(&co.Status.Conditions, configv1.ClusterOperatorStatusCondition{Type: configv1.OperatorAvailable, Status: configv1.ConditionFalse})
825848
cov1helpers.SetStatusCondition(&co.Status.Conditions, configv1.ClusterOperatorStatusCondition{Type: configv1.OperatorProgressing, Status: configv1.ConditionFalse})
826849
cov1helpers.SetStatusCondition(&co.Status.Conditions, configv1.ClusterOperatorStatusCondition{Type: configv1.OperatorDegraded, Status: configv1.ConditionFalse})
@@ -920,6 +943,13 @@ func TestCustomPoolKubeletSkewUnSupported(t *testing.T) {
920943
})
921944

922945
co := &configv1.ClusterOperator{}
946+
configNode := &configv1.Node{
947+
ObjectMeta: metav1.ObjectMeta{Name: ctrlcommon.ClusterNodeInstanceName},
948+
Spec: configv1.NodeSpec{},
949+
}
950+
configNodeIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})
951+
optr.nodeClusterLister = configlistersv1.NewNodeLister(configNodeIndexer)
952+
configNodeIndexer.Add(configNode)
923953
cov1helpers.SetStatusCondition(&co.Status.Conditions, configv1.ClusterOperatorStatusCondition{Type: configv1.OperatorAvailable, Status: configv1.ConditionFalse})
924954
cov1helpers.SetStatusCondition(&co.Status.Conditions, configv1.ClusterOperatorStatusCondition{Type: configv1.OperatorProgressing, Status: configv1.ConditionFalse})
925955
cov1helpers.SetStatusCondition(&co.Status.Conditions, configv1.ClusterOperatorStatusCondition{Type: configv1.OperatorDegraded, Status: configv1.ConditionFalse})
@@ -1017,6 +1047,13 @@ func TestKubeletSkewSupported(t *testing.T) {
10171047
})
10181048

10191049
co := &configv1.ClusterOperator{}
1050+
configNode := &configv1.Node{
1051+
ObjectMeta: metav1.ObjectMeta{Name: ctrlcommon.ClusterNodeInstanceName},
1052+
Spec: configv1.NodeSpec{},
1053+
}
1054+
configNodeIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})
1055+
optr.nodeClusterLister = configlistersv1.NewNodeLister(configNodeIndexer)
1056+
configNodeIndexer.Add(configNode)
10201057
cov1helpers.SetStatusCondition(&co.Status.Conditions, configv1.ClusterOperatorStatusCondition{Type: configv1.OperatorAvailable, Status: configv1.ConditionFalse})
10211058
cov1helpers.SetStatusCondition(&co.Status.Conditions, configv1.ClusterOperatorStatusCondition{Type: configv1.OperatorProgressing, Status: configv1.ConditionFalse})
10221059
cov1helpers.SetStatusCondition(&co.Status.Conditions, configv1.ClusterOperatorStatusCondition{Type: configv1.OperatorDegraded, Status: configv1.ConditionFalse})

0 commit comments

Comments
 (0)