| ... | ... |
@@ -139,11 +139,11 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba |
| 139 | 139 |
} |
| 140 | 140 |
|
| 141 | 141 |
if len(c.CapAdd) > 0 {
|
| 142 |
- params = append(params, "-cap-add", strings.Join(c.CapAdd, " ")) |
|
| 142 |
+ params = append(params, fmt.Sprintf("-cap-add=%s", strings.Join(c.CapAdd, ":")))
|
|
| 143 | 143 |
} |
| 144 | 144 |
|
| 145 | 145 |
if len(c.CapDrop) > 0 {
|
| 146 |
- params = append(params, "-cap-drop", strings.Join(c.CapDrop, " ")) |
|
| 146 |
+ params = append(params, fmt.Sprintf("-cap-drop=%s", strings.Join(c.CapDrop, ":")))
|
|
| 147 | 147 |
} |
| 148 | 148 |
|
| 149 | 149 |
params = append(params, "--", c.Entrypoint) |
| ... | ... |
@@ -49,7 +49,19 @@ func finalizeNamespace(args *execdriver.InitArgs) error {
|
| 49 | 49 |
return fmt.Errorf("clear keep caps %s", err)
|
| 50 | 50 |
} |
| 51 | 51 |
|
| 52 |
- caps, err := execdriver.TweakCapabilities(container.Capabilities, strings.Split(args.CapAdd, " "), strings.Split(args.CapDrop, " ")) |
|
| 52 |
+ var ( |
|
| 53 |
+ adds []string |
|
| 54 |
+ drops []string |
|
| 55 |
+ ) |
|
| 56 |
+ |
|
| 57 |
+ if args.CapAdd != "" {
|
|
| 58 |
+ adds = strings.Split(args.CapAdd, ":") |
|
| 59 |
+ } |
|
| 60 |
+ if args.CapDrop != "" {
|
|
| 61 |
+ drops = strings.Split(args.CapDrop, ":") |
|
| 62 |
+ } |
|
| 63 |
+ |
|
| 64 |
+ caps, err := execdriver.TweakCapabilities(container.Capabilities, adds, drops) |
|
| 53 | 65 |
if err != nil {
|
| 54 | 66 |
return err |
| 55 | 67 |
} |
| ... | ... |
@@ -20,7 +20,7 @@ func TweakCapabilities(basics, adds, drops []string) ([]string, error) {
|
| 20 | 20 |
continue |
| 21 | 21 |
} |
| 22 | 22 |
if !utils.StringsContainsNoCase(allCaps, cap) {
|
| 23 |
- return nil, fmt.Errorf("Unknown capability: %s", cap)
|
|
| 23 |
+ return nil, fmt.Errorf("Unknown capability drop: %q", cap)
|
|
| 24 | 24 |
} |
| 25 | 25 |
} |
| 26 | 26 |
|
| ... | ... |
@@ -49,9 +49,8 @@ func TweakCapabilities(basics, adds, drops []string) ([]string, error) {
|
| 49 | 49 |
continue |
| 50 | 50 |
} |
| 51 | 51 |
|
| 52 |
- // look for invalid cap in the drop list |
|
| 53 | 52 |
if !utils.StringsContainsNoCase(allCaps, cap) {
|
| 54 |
- return nil, fmt.Errorf("Unknown capability: %s", cap)
|
|
| 53 |
+ return nil, fmt.Errorf("Unknown capability to add: %q", cap)
|
|
| 55 | 54 |
} |
| 56 | 55 |
|
| 57 | 56 |
// add cap if not already in the list |
| ... | ... |
@@ -59,5 +58,6 @@ func TweakCapabilities(basics, adds, drops []string) ([]string, error) {
|
| 59 | 59 |
newCaps = append(newCaps, strings.ToUpper(cap)) |
| 60 | 60 |
} |
| 61 | 61 |
} |
| 62 |
+ |
|
| 62 | 63 |
return newCaps, nil |
| 63 | 64 |
} |