summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorNiall Crowe <nicrowe@redhat.com>2022-06-24 15:43:05 +0100
committerNiall Crowe <nicrowe@redhat.com>2022-07-13 15:27:03 +0100
commite08a77ce64eec5cd0192ae1970fa859c00440174 (patch)
tree434b8a11abe0eb43a5a4e5e99ac4e04fdcc1730f /test
parent4df6122aaa3bc858e9488d366a2c9c91b6671170 (diff)
downloadpodman-e08a77ce64eec5cd0192ae1970fa859c00440174.tar.gz
podman-e08a77ce64eec5cd0192ae1970fa859c00440174.tar.bz2
podman-e08a77ce64eec5cd0192ae1970fa859c00440174.zip
Add "podman kube play" cmd
The "podman kube play" command is designed to be a replacement for the "podman play kube" command. It performs the same function as "play kube" while also still working with the same flags and options. The "podman play kube" command is still functional as an alias of "kube play". Closes #12475 Signed-off-by: Niall Crowe <nicrowe@redhat.com> Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
Diffstat (limited to 'test')
-rw-r--r--test/apiv2/25-containersMore.at28
-rw-r--r--test/apiv2/80-kube.at50
-rwxr-xr-xtest/apiv2/test-apiv24
-rw-r--r--test/system/700-play.bats34
4 files changed, 77 insertions, 39 deletions
diff --git a/test/apiv2/25-containersMore.at b/test/apiv2/25-containersMore.at
index c9fda8c6f..9cdc2a33f 100644
--- a/test/apiv2/25-containersMore.at
+++ b/test/apiv2/25-containersMore.at
@@ -53,34 +53,6 @@ t POST libpod/containers/foo/unmount 204
t DELETE libpod/containers/foo?force=true 200
-podman run $IMAGE true
-
-t GET libpod/containers/json?last=1 200 \
- length=1 \
- .[0].Id~[0-9a-f]\\{64\\} \
- .[0].Image=$IMAGE \
- .[0].Command[0]="true" \
- .[0].State~\\\(exited\\\|stopped\\\) \
- .[0].ExitCode=0 \
- .[0].IsInfra=false
-
-cid=$(jq -r '.[0].Id' <<<"$output")
-
-t GET libpod/generate/kube?names=$cid 200
-like "$output" ".*apiVersion:.*" "Check generated kube yaml - apiVersion"
-like "$output" ".*kind:\\sPod.*" "Check generated kube yaml - kind: Pod"
-like "$output" ".*metadata:.*" "Check generated kube yaml - metadata"
-like "$output" ".*spec:.*" "Check generated kube yaml - spec"
-
-t GET "libpod/generate/kube?service=true&names=$cid" 200
-like "$output" ".*apiVersion:.*" "Check generated kube yaml(service=true) - apiVersion"
-like "$output" ".*kind:\\sPod.*" "Check generated kube yaml(service=true) - kind: Pod"
-like "$output" ".*metadata:.*" "Check generated kube yaml(service=true) - metadata"
-like "$output" ".*spec:.*" "Check generated kube yaml(service=true) - spec"
-like "$output" ".*kind:\\sService.*" "Check generated kube yaml(service=true) - kind: Service"
-
-t DELETE libpod/containers/$cid 200 .[0].Id=$cid
-
# Create 3 stopped containers to test containers prune
podman run $IMAGE true
podman run $IMAGE true
diff --git a/test/apiv2/80-kube.at b/test/apiv2/80-kube.at
new file mode 100644
index 000000000..40b26d75e
--- /dev/null
+++ b/test/apiv2/80-kube.at
@@ -0,0 +1,50 @@
+# -*- sh -*-
+#
+# test more container-related endpoints
+#
+
+podman create $IMAGE true
+
+t GET libpod/containers/json?last=1 200 \
+ length=1 \
+ .[0].Id~[0-9a-f]\\{64\\} \
+ .[0].Image=$IMAGE \
+ .[0].Command[0]="true" \
+ .[0].IsInfra=false
+
+cid=$(jq -r '.[0].Id' <<<"$output")
+
+# Make sure that generate-kube works
+
+t GET libpod/generate/kube?names=$cid 200
+like "$output" ".*apiVersion:.*" "Check generated kube yaml - apiVersion"
+like "$output" ".*kind:\\sPod.*" "Check generated kube yaml - kind: Pod"
+like "$output" ".*metadata:.*" "Check generated kube yaml - metadata"
+like "$output" ".*spec:.*" "Check generated kube yaml - spec"
+
+t GET "libpod/generate/kube?service=true&names=$cid" 200
+like "$output" ".*apiVersion:.*" "Check generated kube yaml(service=true) - apiVersion"
+like "$output" ".*kind:\\sPod.*" "Check generated kube yaml(service=true) - kind: Pod"
+like "$output" ".*metadata:.*" "Check generated kube yaml(service=true) - metadata"
+like "$output" ".*spec:.*" "Check generated kube yaml(service=true) - spec"
+like "$output" ".*kind:\\sService.*" "Check generated kube yaml(service=true) - kind: Service"
+
+TMPD=$(mktemp -d podman-apiv2-test-kube.XXXXXX)
+YAML="${TMPD}/kube.yaml"
+echo "$output" > $YAML
+
+t DELETE libpod/containers/$cid 200 .[0].Id=$cid
+
+# Make sure that kube-play works
+
+t POST libpod/kube/play $YAML 200
+t DELETE libpod/kube/play $YAML 200
+
+# Make sure that play-kube works
+
+t POST libpod/play/kube $YAML 200
+t DELETE libpod/play/kube $YAML 200
+
+rm -rf $TMPD
+
+# vim: filetype=sh
diff --git a/test/apiv2/test-apiv2 b/test/apiv2/test-apiv2
index 0fd282854..0c3c6e672 100755
--- a/test/apiv2/test-apiv2
+++ b/test/apiv2/test-apiv2
@@ -252,7 +252,7 @@ function t() {
fi
# POST and PUT requests may be followed by one or more key=value pairs.
# Slurp the command line until we see a 3-digit status code.
- if [[ $method = "POST" || $method == "PUT" ]]; then
+ if [[ $method = "POST" || $method == "PUT" || $method = "DELETE" ]]; then
local -a post_args
for arg; do
case "$arg" in
@@ -261,6 +261,8 @@ function t() {
*.tar) curl_args+=(--data-binary @$arg);
content_type="application/x-tar";
shift;;
+ *.yaml) curl_args+=(--data-binary @$arg);
+ shift;;
application/*) content_type="$arg";
shift;;
[1-9][0-9][0-9]) break;;
diff --git a/test/system/700-play.bats b/test/system/700-play.bats
index 6c2a8c8b1..53e9a5274 100644
--- a/test/system/700-play.bats
+++ b/test/system/700-play.bats
@@ -65,12 +65,12 @@ status: {}
RELABEL="system_u:object_r:container_file_t:s0"
-@test "podman play with stdin" {
+@test "podman kube with stdin" {
TESTDIR=$PODMAN_TMPDIR/testdir
mkdir -p $TESTDIR
echo "$testYaml" | sed "s|TESTDIR|${TESTDIR}|g" > $PODMAN_TMPDIR/test.yaml
- run_podman play kube - < $PODMAN_TMPDIR/test.yaml
+ run_podman kube play - < $PODMAN_TMPDIR/test.yaml
if [ -e /usr/sbin/selinuxenabled -a /usr/sbin/selinuxenabled ]; then
run ls -Zd $TESTDIR
is "$output" "${RELABEL} $TESTDIR" "selinux relabel should have happened"
@@ -86,6 +86,20 @@ RELABEL="system_u:object_r:container_file_t:s0"
run_podman pod rm -t 0 -f test_pod
}
+@test "podman kube" {
+ TESTDIR=$PODMAN_TMPDIR/testdir
+ mkdir -p $TESTDIR
+ echo "$testYaml" | sed "s|TESTDIR|${TESTDIR}|g" > $PODMAN_TMPDIR/test.yaml
+ run_podman kube play $PODMAN_TMPDIR/test.yaml
+ if [ -e /usr/sbin/selinuxenabled -a /usr/sbin/selinuxenabled ]; then
+ run ls -Zd $TESTDIR
+ is "$output" "${RELABEL} $TESTDIR" "selinux relabel should have happened"
+ fi
+
+ run_podman stop -a -t 0
+ run_podman pod rm -t 0 -f test_pod
+}
+
@test "podman play" {
TESTDIR=$PODMAN_TMPDIR/testdir
mkdir -p $TESTDIR
@@ -159,13 +173,13 @@ EOF
run_podman 1 container exists $service_container
}
-@test "podman play --network" {
+@test "podman kube --network" {
TESTDIR=$PODMAN_TMPDIR/testdir
mkdir -p $TESTDIR
echo "$testYaml" | sed "s|TESTDIR|${TESTDIR}|g" > $PODMAN_TMPDIR/test.yaml
- run_podman 125 play kube --network host $PODMAN_TMPDIR/test.yaml
+ run_podman 125 kube play --network host $PODMAN_TMPDIR/test.yaml
is "$output" ".*invalid value passed to --network: bridge or host networking must be configured in YAML" "podman plan-network should fail with --network host"
- run_podman play kube --network slirp4netns:port_handler=slirp4netns $PODMAN_TMPDIR/test.yaml
+ run_podman kube play --network slirp4netns:port_handler=slirp4netns $PODMAN_TMPDIR/test.yaml
run_podman pod inspect --format {{.InfraContainerID}} "${lines[1]}"
infraID="$output"
run_podman container inspect --format "{{.HostConfig.NetworkMode}}" $infraID
@@ -174,7 +188,7 @@ EOF
run_podman stop -a -t 0
run_podman pod rm -t 0 -f test_pod
- run_podman play kube --network none $PODMAN_TMPDIR/test.yaml
+ run_podman kube play --network none $PODMAN_TMPDIR/test.yaml
run_podman pod inspect --format {{.InfraContainerID}} "${lines[1]}"
infraID="$output"
run_podman container inspect --format "{{.HostConfig.NetworkMode}}" $infraID
@@ -280,12 +294,12 @@ _EOF
run_podman rmi -f userimage:latest
}
-@test "podman play --annotation" {
+@test "podman kube --annotation" {
TESTDIR=$PODMAN_TMPDIR/testdir
RANDOMSTRING=$(random_string 15)
mkdir -p $TESTDIR
echo "$testYaml" | sed "s|TESTDIR|${TESTDIR}|g" > $PODMAN_TMPDIR/test.yaml
- run_podman play kube --annotation "name=$RANDOMSTRING" $PODMAN_TMPDIR/test.yaml
+ run_podman kube play --annotation "name=$RANDOMSTRING" $PODMAN_TMPDIR/test.yaml
run_podman inspect --format "{{ .Config.Annotations }}" test_pod-test
is "$output" ".*name:$RANDOMSTRING" "Annotation should be added to pod"
@@ -338,7 +352,7 @@ status: {}
assert "$output" =~ "invalid annotation \"test\"=\"$RANDOMSTRING\"" "Expected to fail with annotation length greater than 63"
}
-@test "podman play kube - default log driver" {
+@test "podman kube play - default log driver" {
TESTDIR=$PODMAN_TMPDIR/testdir
mkdir -p $TESTDIR
echo "$testYaml" | sed "s|TESTDIR|${TESTDIR}|g" > $PODMAN_TMPDIR/test.yaml
@@ -347,7 +361,7 @@ status: {}
default_driver=$output
# Make sure that the default log driver is used
- run_podman play kube $PODMAN_TMPDIR/test.yaml
+ run_podman kube play $PODMAN_TMPDIR/test.yaml
run_podman inspect --format "{{.HostConfig.LogConfig.Type}}" test_pod-test
is "$output" "$default_driver" "play kube uses default log driver"