@@ -389,6 +389,97 @@ metadata:
389389 }
390390}
391391
392+ func TestNodeSizingEnabled (t * testing.T ) {
393+ ctx := context .Background ()
394+
395+ testEnv := framework .NewTestEnv (t )
396+
397+ configv1 .Install (scheme .Scheme )
398+ configv1alpha1 .Install (scheme .Scheme )
399+ mcfgv1 .Install (scheme .Scheme )
400+ apioperatorsv1alpha1 .Install (scheme .Scheme )
401+
402+ baseTestManifests := loadBaseTestManifests (t )
403+
404+ cfg , err := testEnv .Start ()
405+ require .NoError (t , err )
406+ defer func () {
407+ assert .NoError (t , testEnv .Stop ())
408+ }()
409+
410+ clientSet := framework .NewClientSetFromConfig (cfg )
411+
412+ _ , err = clientSet .Namespaces ().Create (ctx , & corev1.Namespace {
413+ ObjectMeta : metav1.ObjectMeta {
414+ Name : framework .OpenshiftConfigNamespace ,
415+ },
416+ }, metav1.CreateOptions {})
417+ require .NoError (t , err )
418+
419+ _ , err = clientSet .Namespaces ().Create (ctx , & corev1.Namespace {
420+ ObjectMeta : metav1.ObjectMeta {
421+ Name : bootstrapTestName ,
422+ },
423+ }, metav1.CreateOptions {})
424+ require .NoError (t , err )
425+
426+ objs := append ([]runtime.Object {}, baseTestManifests ... )
427+
428+ // Add node config
429+ nodeConfigManifest := [][]byte {
430+ []byte (`apiVersion: config.openshift.io/v1
431+ kind: Node
432+ metadata:
433+ name: cluster` ),
434+ }
435+ objs = append (objs , loadRawManifests (t , nodeConfigManifest )... )
436+
437+ fixture := newTestFixture (t , cfg , objs )
438+ defer framework .CleanEnvironment (t , clientSet )
439+ defer fixture .stop ()
440+
441+ // Fetch the controller rendered configurations
442+ controllerRenderedMasterConfigName , err := helpers .WaitForRenderedConfigs (t , clientSet , "master" , []string {"99-master-ssh" , "99-master-generated-registries" }... )
443+ require .NoError (t , err )
444+ t .Logf ("Controller rendered master config as %q" , controllerRenderedMasterConfigName )
445+
446+ controllerRenderedWorkerConfigName , err := helpers .WaitForRenderedConfigs (t , clientSet , "worker" , []string {"99-worker-ssh" , "99-worker-generated-registries" }... )
447+ require .NoError (t , err )
448+ t .Logf ("Controller rendered worker config as %q" , controllerRenderedWorkerConfigName )
449+
450+ // Verify node sizing enabled file for master
451+ verifyNodeSizingEnabled (t , clientSet , controllerRenderedMasterConfigName )
452+
453+ // Verify node sizing enabled file for worker
454+ verifyNodeSizingEnabled (t , clientSet , controllerRenderedWorkerConfigName )
455+ }
456+
457+ func verifyNodeSizingEnabled (t * testing.T , clientSet * framework.ClientSet , renderedConfigName string ) {
458+ controllerMC , err := clientSet .MachineConfigs ().Get (context .Background (), renderedConfigName , metav1.GetOptions {})
459+ require .NoError (t , err )
460+
461+ ignCfg , err := ctrlcommon .ParseAndConvertConfig (controllerMC .Spec .Config .Raw )
462+ require .NoError (t , err )
463+
464+ // Find the node sizing enabled file
465+ var foundFile bool
466+ for _ , file := range ignCfg .Storage .Files {
467+ if file .Path == "/etc/node-sizing-enabled.env" {
468+ foundFile = true
469+
470+ // Decode the file contents
471+ contents , err := ctrlcommon .DecodeIgnitionFileContents (file .Contents .Source , file .Contents .Compression )
472+ require .NoError (t , err , "Failed to decode node-sizing-enabled.env file contents" )
473+
474+ contentsStr := string (contents )
475+ require .Contains (t , contentsStr , "NODE_SIZING_ENABLED=true" , "Expected /etc/node-sizing-enabled.env to contain NODE_SIZING_ENABLED=true in machine config %s" , renderedConfigName )
476+ break
477+ }
478+ }
479+
480+ require .True (t , foundFile , "Expected to find /etc/node-sizing-enabled.env in machine config %s" , renderedConfigName )
481+ }
482+
392483func compareRenderedConfigPool (t * testing.T , clientSet * framework.ClientSet , destDir , poolName , controllerRenderedConfigName string ) {
393484 paths , err := filepath .Glob (filepath .Join (destDir , "machine-configs" , fmt .Sprintf ("rendered-%s-*.yaml" , poolName )))
394485 require .NoError (t , err )
0 commit comments