Skip to content

Commit 43243fe

Browse files
committed
Add missing interface to set init processes Umask
Umask is a field specified in the runtime spec, but we don't have a method to set it in runtime-tools. Some users might want to modify the default Umask of a container. Signed-off-by: Daniel J Walsh <[email protected]>
1 parent d1bf3e6 commit 43243fe

File tree

35 files changed

+10246
-15
lines changed

35 files changed

+10246
-15
lines changed

Godeps/Godeps.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/oci-runtime-tool/generate.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ var generateFlags = []cli.Flag{
118118
cli.BoolFlag{Name: "process-rlimits-remove-all", Usage: "remove all resource limits for processes inside the container. "},
119119
cli.BoolFlag{Name: "process-terminal", Usage: "specifies whether a terminal is attached to the process"},
120120
cli.IntFlag{Name: "process-uid", Usage: "uid for the process"},
121+
cli.StringFlag{Name: "process-umask", Usage: "umask for the process"},
121122
cli.StringFlag{Name: "process-username", Usage: "username for the process"},
122123
cli.StringFlag{Name: "rootfs-path", Value: "rootfs", Usage: "path to the root filesystem"},
123124
cli.BoolFlag{Name: "rootfs-readonly", Usage: "make the container's rootfs readonly"},
@@ -234,6 +235,10 @@ func setupSpec(g *generate.Generator, context *cli.Context) error {
234235
g.SetProcessUsername(context.String("process-username"))
235236
}
236237

238+
if context.IsSet("process-umask") {
239+
g.SetProcessUmask(uint32(context.Int("process-umask")))
240+
}
241+
237242
if context.IsSet("process-gid") {
238243
g.SetProcessGID(uint32(context.Int("process-gid")))
239244
}

generate/generate.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,12 @@ func (g *Generator) SetProcessUsername(username string) {
444444
g.Config.Process.User.Username = username
445445
}
446446

447+
// SetProcessUmask sets g.Config.Process.User.Umask.
448+
func (g *Generator) SetProcessUmask(umask uint32) {
449+
g.initConfigProcess()
450+
g.Config.Process.User.Umask = umask
451+
}
452+
447453
// SetProcessGID sets g.Config.Process.User.GID.
448454
func (g *Generator) SetProcessGID(gid uint32) {
449455
g.initConfigProcess()

validate/validate_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func TestJSONSchema(t *testing.T) {
4343
}{
4444
{
4545
config: &rspec.Spec{},
46-
error: "1 error occurred:\n\t* Version string empty\nRefer to: https://github.com/opencontainers/runtime-spec/blob/v1.0.1/config.md#specification-version\n\n",
46+
error: "1 error occurred:\n\t* Version string empty\nRefer to: https://github.com/opencontainers/runtime-spec/blob/v1.0.2/config.md#specification-version\n\n",
4747
},
4848
{
4949
config: &rspec.Spec{
@@ -62,7 +62,7 @@ func TestJSONSchema(t *testing.T) {
6262
Version: "1.0.0",
6363
Process: &rspec.Process{},
6464
},
65-
error: "process.args: Invalid type. Expected: array, given: null",
65+
error: "1 error occurred:\n\t* args: args is required\n\n",
6666
},
6767
{
6868
config: &rspec.Spec{

validation/process_user/process_user.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ func main() {
1717
g.SetProcessUID(10)
1818
g.SetProcessGID(10)
1919
g.AddProcessAdditionalGid(5)
20+
g.SetProcessUmask(002)
2021
case "windows":
2122
g.SetProcessUsername("test")
2223
default:

vendor/github.com/mndrix/tap-go/gopath/src/github.com/mndrix/tap-go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/mndrix/tap-go/tap.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/opencontainers/runtime-spec/specs-go/config.go

Lines changed: 57 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/opencontainers/runtime-spec/specs-go/version.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/sirupsen/logrus/.gitignore

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)