mirror of
https://github.com/containers/podman.git
synced 2025-06-20 17:13:43 +08:00
Merge pull request #8363 from AlbanBedel/play-kube-create-only
Add an option to control if play kube should start the pod
This commit is contained in:
@ -23,8 +23,10 @@ func PlayKube(w http.ResponseWriter, r *http.Request) {
|
||||
Network string `schema:"reference"`
|
||||
TLSVerify bool `schema:"tlsVerify"`
|
||||
LogDriver string `schema:"logDriver"`
|
||||
Start bool `schema:"start"`
|
||||
}{
|
||||
TLSVerify: true,
|
||||
Start: true,
|
||||
}
|
||||
|
||||
if err := decoder.Decode(&query, r.URL.Query()); err != nil {
|
||||
@ -73,6 +75,9 @@ func PlayKube(w http.ResponseWriter, r *http.Request) {
|
||||
if _, found := r.URL.Query()["tlsVerify"]; found {
|
||||
options.SkipTLSVerify = types.NewOptionalBool(!query.TLSVerify)
|
||||
}
|
||||
if _, found := r.URL.Query()["start"]; found {
|
||||
options.Start = types.NewOptionalBool(query.Start)
|
||||
}
|
||||
|
||||
report, err := containerEngine.PlayKube(r.Context(), tmpfile.Name(), options)
|
||||
if err != nil {
|
||||
|
@ -29,6 +29,11 @@ func (s *APIServer) registerPlayHandlers(r *mux.Router) error {
|
||||
// name: logDriver
|
||||
// type: string
|
||||
// description: Logging driver for the containers in the pod.
|
||||
// - in: query
|
||||
// name: start
|
||||
// type: boolean
|
||||
// default: true
|
||||
// description: Start the pod after creating it.
|
||||
// - in: body
|
||||
// name: request
|
||||
// description: Kubernetes YAML file.
|
||||
|
@ -32,6 +32,9 @@ func Kube(ctx context.Context, path string, options entities.PlayKubeOptions) (*
|
||||
if options.SkipTLSVerify != types.OptionalBoolUndefined {
|
||||
params.Set("tlsVerify", strconv.FormatBool(options.SkipTLSVerify != types.OptionalBoolTrue))
|
||||
}
|
||||
if options.Start != types.OptionalBoolUndefined {
|
||||
params.Set("start", strconv.FormatBool(options.Start == types.OptionalBoolTrue))
|
||||
}
|
||||
|
||||
// TODO: have a global system context we can pass around (1st argument)
|
||||
header, err := auth.Header(nil, auth.XRegistryAuthHeader, options.Authfile, options.Username, options.Password)
|
||||
|
@ -28,6 +28,8 @@ type PlayKubeOptions struct {
|
||||
ConfigMaps []string
|
||||
// LogDriver for the container. For example: journald
|
||||
LogDriver string
|
||||
// Start - don't start the pod if false
|
||||
Start types.OptionalBool
|
||||
}
|
||||
|
||||
// PlayKubePod represents a single pod and associated containers created by play kube
|
||||
|
@ -297,20 +297,22 @@ func (ic *ContainerEngine) playKubePod(ctx context.Context, podName string, podY
|
||||
containers = append(containers, ctr)
|
||||
}
|
||||
|
||||
//start the containers
|
||||
podStartErrors, err := pod.Start(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if options.Start != types.OptionalBoolFalse {
|
||||
//start the containers
|
||||
podStartErrors, err := pod.Start(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Previous versions of playkube started containers individually and then
|
||||
// looked for errors. Because we now use the uber-Pod start call, we should
|
||||
// iterate the map of possible errors and return one if there is a problem. This
|
||||
// keeps the behavior the same
|
||||
// Previous versions of playkube started containers individually and then
|
||||
// looked for errors. Because we now use the uber-Pod start call, we should
|
||||
// iterate the map of possible errors and return one if there is a problem. This
|
||||
// keeps the behavior the same
|
||||
|
||||
for _, e := range podStartErrors {
|
||||
if e != nil {
|
||||
return nil, e
|
||||
for _, e := range podStartErrors {
|
||||
if e != nil {
|
||||
return nil, e
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user