oci: Add WithDomainname
A domainname field was recently added to the OCI spec. Prior to this folks would need to set this with a sysctl, but now runtimes should be able to setdomainname(2). There's an open change to runc at the moment to add support for this so I've just left testing as a couple spec validations in CRI until that's in and usable. Signed-off-by: Danny Canter <danny@dcantah.dev>
This commit is contained in:
		| @@ -274,6 +274,14 @@ func WithHostname(name string) SpecOpts { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // WithDomainname sets the container's NIS domain name | ||||
| func WithDomainname(name string) SpecOpts { | ||||
| 	return func(_ context.Context, _ Client, _ *containers.Container, s *Spec) error { | ||||
| 		s.Domainname = name | ||||
| 		return nil | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // WithMounts appends mounts | ||||
| func WithMounts(mounts []specs.Mount) SpecOpts { | ||||
| 	return func(_ context.Context, _ Client, _ *containers.Container, s *Spec) error { | ||||
|   | ||||
| @@ -412,11 +412,17 @@ func TestBaseRuntimeSpec(t *testing.T) { | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	out, err := c.runtimeSpec("id1", "/etc/containerd/cri-base.json", oci.WithHostname("new")) | ||||
| 	out, err := c.runtimeSpec( | ||||
| 		"id1", | ||||
| 		"/etc/containerd/cri-base.json", | ||||
| 		oci.WithHostname("new-host"), | ||||
| 		oci.WithDomainname("new-domain"), | ||||
| 	) | ||||
| 	assert.NoError(t, err) | ||||
|  | ||||
| 	assert.Equal(t, "1.0.2", out.Version) | ||||
| 	assert.Equal(t, "new", out.Hostname) | ||||
| 	assert.Equal(t, "new-host", out.Hostname) | ||||
| 	assert.Equal(t, "new-domain", out.Domainname) | ||||
|  | ||||
| 	// Make sure original base spec not changed | ||||
| 	assert.NotEqual(t, out, c.baseOCISpecs["/etc/containerd/cri-base.json"]) | ||||
|   | ||||
| @@ -412,11 +412,17 @@ func TestBaseRuntimeSpec(t *testing.T) { | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	out, err := c.runtimeSpec("id1", "/etc/containerd/cri-base.json", oci.WithHostname("new")) | ||||
| 	out, err := c.runtimeSpec( | ||||
| 		"id1", | ||||
| 		"/etc/containerd/cri-base.json", | ||||
| 		oci.WithHostname("new-host"), | ||||
| 		oci.WithDomainname("new-domain"), | ||||
| 	) | ||||
| 	assert.NoError(t, err) | ||||
|  | ||||
| 	assert.Equal(t, "1.0.2", out.Version) | ||||
| 	assert.Equal(t, "new", out.Hostname) | ||||
| 	assert.Equal(t, "new-host", out.Hostname) | ||||
| 	assert.Equal(t, "new-domain", out.Domainname) | ||||
|  | ||||
| 	// Make sure original base spec not changed | ||||
| 	assert.NotEqual(t, out, c.baseOCISpecs["/etc/containerd/cri-base.json"]) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Danny Canter
					Danny Canter