@@ -620,7 +620,7 @@ func TestDontDeleteRPMFiles(t *testing.T) {
620620func TestIgn3Cfg (t * testing.T ) {
621621 cs := framework .NewClientSet ("" )
622622
623- delete := helpers .CreateMCP (t , cs , "infra" )
623+ deleteFunc := helpers .CreateMCP (t , cs , "infra" )
624624 workerOldMc := helpers .GetMcName (t , cs , "worker" )
625625
626626 unlabelFunc := helpers .LabelRandomNodeFromPool (t , cs , "worker" , "node-role.kubernetes.io/infra" )
@@ -631,7 +631,7 @@ func TestIgn3Cfg(t *testing.T) {
631631 if err := helpers .WaitForPoolComplete (t , cs , "worker" , workerOldMc ); err != nil {
632632 t .Fatal (err )
633633 }
634- delete ()
634+ deleteFunc ()
635635 })
636636 // create a dummy MC with an sshKey for user Core
637637 mcName := fmt .Sprintf ("99-ign3cfg-infra-%s" , uuid .NewUUID ())
@@ -650,6 +650,59 @@ func TestIgn3Cfg(t *testing.T) {
650650 tempFile := ign3types.File {Node : ign3types.Node {Path : "/etc/testfileconfig" },
651651 FileEmbedded1 : ign3types.FileEmbedded1 {Contents : ign3types.Resource {Source : & testfiledata }, Mode : & mode }}
652652 testIgn3Config .Storage .Files = append (testIgn3Config .Storage .Files , tempFile )
653+
654+ overrideName := "override.conf"
655+ testIgn3Config .Systemd .Units = []ign3types.Unit {
656+ {
657+ Name : "new-svc.service" ,
658+ Enabled : helpers .BoolToPtr (true ),
659+ Contents : getSystemdUnitContents ("New Service" ),
660+ },
661+ {
662+ Name : "new-svc-with-dropin.service" ,
663+ Enabled : helpers .BoolToPtr (true ),
664+ Contents : getSystemdUnitContents ("New Service With Dropin" ),
665+ Dropins : []ign3types.Dropin {
666+ {
667+ Name : overrideName ,
668+ Contents : helpers .StrToPtr ("[Unit]\n Description=Dropin Override" ),
669+ },
670+ },
671+ },
672+ {
673+ Name : "new-empty-svc.service" ,
674+ Enabled : helpers .BoolToPtr (true ),
675+ },
676+ {
677+ Name : "new-empty-svc-with-empty-dropin.service" ,
678+ Enabled : helpers .BoolToPtr (true ),
679+ Dropins : []ign3types.Dropin {
680+ {
681+ Name : overrideName ,
682+ },
683+ },
684+ },
685+ {
686+ Name : "new-empty-svc-with-dropin.service" ,
687+ Enabled : helpers .BoolToPtr (true ),
688+ Dropins : []ign3types.Dropin {
689+ {
690+ Name : overrideName ,
691+ Contents : getSystemdUnitContents ("Empty Service With Dropin Override" ),
692+ },
693+ },
694+ },
695+ {
696+ Name : "new-empty-disabled-svc.service" ,
697+ Enabled : helpers .BoolToPtr (false ),
698+ },
699+ {
700+ Name : "new-disabled-svc.service" ,
701+ Enabled : helpers .BoolToPtr (false ),
702+ Contents : getSystemdUnitContents ("New Disabled Service" ),
703+ },
704+ }
705+
653706 rawIgnConfig := helpers .MarshalOrDie (testIgn3Config )
654707 mcadd .Spec .Config .Raw = rawIgnConfig
655708
@@ -682,6 +735,46 @@ func TestIgn3Cfg(t *testing.T) {
682735 }
683736 t .Logf ("Node %s has file" , infraNode .Name )
684737
738+ systemdUnitAssertions := map [string ]func (* testing.T , string ){
739+ "new-svc.service" : func (t * testing.T , name string ) {
740+ assertSystemdUnitFileExists (t , cs , infraNode , name )
741+ assertSystemdUnitIsEnabled (t , cs , infraNode , name )
742+ },
743+ "new-svc-with-dropin.service" : func (t * testing.T , name string ) {
744+ assertSystemdUnitFileExists (t , cs , infraNode , name )
745+ assertSystemdUnitIsEnabled (t , cs , infraNode , name )
746+ assertSystemdUnitDropinFileExists (t , cs , infraNode , name , overrideName )
747+ assertSystemdUnitHasDropins (t , cs , infraNode , name , []string {overrideName })
748+ },
749+ "new-empty-svc.service" : func (t * testing.T , name string ) {
750+ assertSystemdUnitFileDoesNotExist (t , cs , infraNode , name )
751+ assertSystemdUnitDoesNotExist (t , cs , infraNode , name )
752+ },
753+ "new-empty-svc-with-empty-dropin.service" : func (t * testing.T , name string ) {
754+ assertSystemdUnitDoesNotExist (t , cs , infraNode , name )
755+ assertSystemdUnitFileDoesNotExist (t , cs , infraNode , name )
756+ assertSystemdUnitDropinFileDoesNotExist (t , cs , infraNode , name , overrideName )
757+ },
758+ "new-empty-svc-with-dropin.service" : func (t * testing.T , name string ) {
759+ assertSystemdUnitFileDoesNotExist (t , cs , infraNode , name )
760+ assertSystemdUnitDropinFileExists (t , cs , infraNode , name , overrideName )
761+ },
762+ "new-empty-disabled-svc.service" : func (t * testing.T , name string ) {
763+ assertSystemdUnitDoesNotExist (t , cs , infraNode , name )
764+ assertSystemdUnitFileDoesNotExist (t , cs , infraNode , name )
765+ },
766+ "new-disabled-svc.service" : func (t * testing.T , name string ) {
767+ assertSystemdUnitFileExists (t , cs , infraNode , name )
768+ assertSystemdUnitExists (t , cs , infraNode , name )
769+ assertSystemdUnitIsDisabled (t , cs , infraNode , name )
770+ },
771+ }
772+
773+ for name , assertionFunc := range systemdUnitAssertions {
774+ t .Logf ("Running assertion(s) for %s" , name )
775+ assertionFunc (t , name )
776+ }
777+
685778 unlabelFunc ()
686779
687780 workerMCP , err := cs .MachineConfigPools ().Get (context .TODO (), "worker" , metav1.GetOptions {})
0 commit comments