mirror of
https://github.com/containers/podman.git
synced 2025-10-18 19:53:58 +08:00
Merge pull request #25796 from Luap99/kube-pod-empty
quadlet kube: consider empty pod as running
This commit is contained in:
@ -287,8 +287,16 @@ func (ic *ContainerEngine) PlayKube(ctx context.Context, body io.Reader, options
|
|||||||
setRanContainers := func(r *entities.PlayKubeReport) {
|
setRanContainers := func(r *entities.PlayKubeReport) {
|
||||||
if !ranContainers {
|
if !ranContainers {
|
||||||
for _, p := range r.Pods {
|
for _, p := range r.Pods {
|
||||||
|
numCons := len(p.Containers) + len(p.InitContainers)
|
||||||
|
if numCons == 0 {
|
||||||
|
// special case, the pod has no containers (besides infra)
|
||||||
|
// That seems to be valid per https://github.com/containers/podman/issues/25786
|
||||||
|
// and users could depend on it so mark it as running in that case.
|
||||||
|
ranContainers = true
|
||||||
|
break
|
||||||
|
}
|
||||||
// If the list of container errors is less then the total number of pod containers then we know it did start.
|
// If the list of container errors is less then the total number of pod containers then we know it did start.
|
||||||
if len(p.ContainerErrors) < len(p.Containers)+len(p.InitContainers) {
|
if len(p.ContainerErrors) < numCons {
|
||||||
ranContainers = true
|
ranContainers = true
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
@ -1160,6 +1160,35 @@ EOF
|
|||||||
kill "$nc_pid"
|
kill "$nc_pid"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# https://github.com/containers/podman/issues/25786
|
||||||
|
@test "quadlet kube - pod without containers" {
|
||||||
|
local port=$(random_free_port)
|
||||||
|
# Create the YAML file
|
||||||
|
pod_name="p-$(safename)"
|
||||||
|
yaml_source="$PODMAN_TMPDIR/no_cons_$(safename).yaml"
|
||||||
|
cat >$yaml_source <<EOF
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: $pod_name
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Create the Quadlet file
|
||||||
|
local quadlet_file=$PODMAN_TMPDIR/no_cons_$(safename).kube
|
||||||
|
cat > $quadlet_file <<EOF
|
||||||
|
[Kube]
|
||||||
|
Yaml=${yaml_source}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
run_quadlet "$quadlet_file"
|
||||||
|
service_setup $QUADLET_SERVICE_NAME
|
||||||
|
|
||||||
|
run_podman pod ps --format "{{.Name}}--{{.Status}}"
|
||||||
|
assert "$output" =~ "$pod_name--Running" "pod is running"
|
||||||
|
|
||||||
|
service_cleanup $QUADLET_SERVICE_NAME inactive
|
||||||
|
}
|
||||||
|
|
||||||
@test "quadlet - image files" {
|
@test "quadlet - image files" {
|
||||||
local quadlet_tmpdir=$PODMAN_TMPDIR/quadlets
|
local quadlet_tmpdir=$PODMAN_TMPDIR/quadlets
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user