@@ -118,6 +118,49 @@ runtime_type = "/opt/rcm/bin/containerd-shim-spin-v1"
118
118
}
119
119
}
120
120
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
+
121
164
func TestConfig_RemoveRuntime (t * testing.T ) {
122
165
type fields struct {
123
166
hostFs afero.Fs
0 commit comments