mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-01 15:58:37 +00:00
avoid resource leak when both --rm
and --expose
are specified
Before this patch, the deployment `leak-test` won't be removed after the following command exits. kubectl run --image=nginx:alpine --stdin --attach \ --rm --expose --port 80 leak-test -- sh This patch ensures both the deployment and the service are all removed. Signed-off-by: Shijiang Wei <mountkin@gmail.com>
This commit is contained in:
parent
2f485ec84b
commit
c0e0dafa4b
@ -276,12 +276,12 @@ func RunRun(f cmdutil.Factory, cmdIn io.Reader, cmdOut, cmdErr io.Writer, cmd *c
|
|||||||
|
|
||||||
params["env"] = cmdutil.GetFlagStringArray(cmd, "env")
|
params["env"] = cmdutil.GetFlagStringArray(cmd, "env")
|
||||||
|
|
||||||
var runObjectMap = map[string]*RunObject{}
|
var createdObjects = []*RunObject{}
|
||||||
runObject, err := createGeneratedObject(f, cmd, generator, names, params, cmdutil.GetFlagString(cmd, "overrides"), namespace)
|
runObject, err := createGeneratedObject(f, cmd, generator, names, params, cmdutil.GetFlagString(cmd, "overrides"), namespace)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
runObjectMap[generatorName] = runObject
|
createdObjects = append(createdObjects, runObject)
|
||||||
}
|
}
|
||||||
allErrs := []error{}
|
allErrs := []error{}
|
||||||
if cmdutil.GetFlagBool(cmd, "expose") {
|
if cmdutil.GetFlagBool(cmd, "expose") {
|
||||||
@ -293,7 +293,7 @@ func RunRun(f cmdutil.Factory, cmdIn io.Reader, cmdOut, cmdErr io.Writer, cmd *c
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
allErrs = append(allErrs, err)
|
allErrs = append(allErrs, err)
|
||||||
} else {
|
} else {
|
||||||
runObjectMap[generatorName] = serviceRunObject
|
createdObjects = append(createdObjects, serviceRunObject)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -345,7 +345,7 @@ func RunRun(f cmdutil.Factory, cmdIn io.Reader, cmdOut, cmdErr io.Writer, cmd *c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if remove {
|
if remove {
|
||||||
for _, obj := range runObjectMap {
|
for _, obj := range createdObjects {
|
||||||
namespace, err = obj.Mapping.MetadataAccessor.Namespace(obj.Object)
|
namespace, err = obj.Mapping.MetadataAccessor.Namespace(obj.Object)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
Loading…
Reference in New Issue
Block a user