mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-09 03:57:41 +00:00
rkt: Unmarshal the ENTRYPOINT/CMD from jsons instead of strings.
Using json makes this robust to ENTRYPOINT/CMD that contains space. Also removed 'RemainAfterExit' option, originally this option is useful when we implement GetPods() by 'systemctl list-units'. However since we are using rkt API service now, it's no longer needed.
This commit is contained in:
parent
62399077d8
commit
9d3d55d0fb
@ -426,11 +426,17 @@ func setApp(imgManifest *appcschema.ImageManifest, c *api.Container, opts *kubec
|
||||
var command, args []string
|
||||
cmd, ok := imgManifest.Annotations.Get(appcDockerEntrypoint)
|
||||
if ok {
|
||||
command = strings.Fields(cmd)
|
||||
err := json.Unmarshal([]byte(cmd), &command)
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot unmarshal ENTRYPOINT %q: %v", cmd, err)
|
||||
}
|
||||
}
|
||||
ag, ok := imgManifest.Annotations.Get(appcDockerCmd)
|
||||
if ok {
|
||||
args = strings.Fields(ag)
|
||||
err := json.Unmarshal([]byte(ag), &args)
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot unmarshal CMD %q: %v", ag, err)
|
||||
}
|
||||
}
|
||||
userCommand, userArgs := kubecontainer.ExpandContainerCommandAndArgs(c, opts.Envs)
|
||||
|
||||
@ -814,8 +820,6 @@ func (r *Runtime) preparePod(pod *api.Pod, pullSecrets []api.Secret) (string, *k
|
||||
// TODO handle pod.Spec.HostIPC
|
||||
|
||||
units := []*unit.UnitOption{
|
||||
// This makes the service show up for 'systemctl list-units' even if it exits successfully.
|
||||
newUnitOption("Service", "RemainAfterExit", "true"),
|
||||
newUnitOption("Service", "ExecStart", runPrepared),
|
||||
// This enables graceful stop.
|
||||
newUnitOption("Service", "KillMode", "mixed"),
|
||||
|
@ -766,8 +766,16 @@ func baseApp(t *testing.T) *appctypes.App {
|
||||
|
||||
func baseImageManifest(t *testing.T) *appcschema.ImageManifest {
|
||||
img := &appcschema.ImageManifest{App: baseApp(t)}
|
||||
img.Annotations.Set(*appctypes.MustACIdentifier(appcDockerEntrypoint), "/bin/foo")
|
||||
img.Annotations.Set(*appctypes.MustACIdentifier(appcDockerCmd), "bar")
|
||||
entrypoint, err := json.Marshal([]string{"/bin/foo"})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
cmd, err := json.Marshal([]string{"bar"})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
img.Annotations.Set(*appctypes.MustACIdentifier(appcDockerEntrypoint), string(entrypoint))
|
||||
img.Annotations.Set(*appctypes.MustACIdentifier(appcDockerCmd), string(cmd))
|
||||
return img
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user