@@ -118,6 +118,49 @@ runtime_type = "/opt/rcm/bin/containerd-shim-spin-v1"
118118 }
119119}
120120
121+ func TestConfig_AddRuntimeOptions (t * testing.T ) {
122+ wantFileContent := `[plugins]
123+ [plugins."io.containerd.monitor.v1.cgroups"]
124+ no_prometheus = false
125+ [plugins."io.containerd.service.v1.diff-service"]
126+ default = ["walking"]
127+ [plugins."io.containerd.gc.v1.scheduler"]
128+ pause_threshold = 0.02
129+ deletion_threshold = 0
130+ mutation_threshold = 100
131+ schedule_delay = 0
132+ startup_delay = "100ms"
133+ [plugins."io.containerd.runtime.v2.task"]
134+ platforms = ["linux/amd64"]
135+ sched_core = true
136+ [plugins."io.containerd.service.v1.tasks-service"]
137+ blockio_config_file = ""
138+ rdt_config_file = ""
139+
140+ # RCM runtime config for spin-v1
141+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.spin-v1]
142+ runtime_type = "/opt/rcm/bin/containerd-shim-spin-v1"
143+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.spin-v1.options]
144+ SystemdCgroup = true`
145+ t .Run ("plugin options added" , func (t * testing.T ) {
146+ c := & Config {
147+ hostFs : tests .FixtureFs ("../../testdata/node-installer/containerd/missing-containerd-shim-config" ),
148+ configPath : "/etc/containerd/config.toml" ,
149+ runtimeOptions : map [string ]string {
150+ "SystemdCgroup" : "true" ,
151+ },
152+ }
153+ err := c .AddRuntime ("/opt/rcm/bin/containerd-shim-spin-v1" )
154+
155+ require .NoError (t , err )
156+
157+ gotContent , err := afero .ReadFile (c .hostFs , c .configPath )
158+ require .NoError (t , err )
159+
160+ assert .Equal (t , wantFileContent , string (gotContent ))
161+ })
162+ }
163+
121164func TestConfig_RemoveRuntime (t * testing.T ) {
122165 type fields struct {
123166 hostFs afero.Fs
0 commit comments