Commit graph

7499 commits

Author SHA1 Message Date
Ygal Blum
7ef97fa49e Kube - support List documents
Flatten List into documents
Add List type to meta/v1
Add unittest
Add e2e test

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2023-08-28 15:22:59 +03:00
Valentin Rothberg
346e5e52e2 kube down/play --replace: handle absent objects
Make sure that `kube down` and `kube play --replace` do not error out
when an object does not exist (or has already been removed).  Such kind
of teardown should not be treated as an ordinary `rm` but as an
`rm --ignore`.  It's purpose it to make sure that all objects in a YAML
are removed; even if they existed only partially.

Fixes: #19711
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-08-28 13:13:40 +02:00
Aditya R
0938ee1899
push, manifest-push: --force-compression must be true with --compression-format
Value of `--force-compression` should be already `true` is
`--compression-format` is selected otherwise let users decide.

Signed-off-by: Aditya R <arajan@redhat.com>
2023-08-28 16:41:13 +05:30
Ashley Cui
b6b300c798 Update machine init/set tests
Init/Set with --rootful
Init/Set  with --user-mode-networking

Signed-off-by: Ashley Cui <acui@redhat.com>
2023-08-25 11:28:07 -04:00
Ashley Cui
da81bc13a1 Add rootful status to machine inspect
Podman machine inspect now shows if the machine is rootful

Signed-off-by: Ashley Cui <acui@redhat.com>
2023-08-25 11:27:08 -04:00
OpenShift Merge Robot
4ff21cf1ac
Merge pull request #19568 from umohnani8/infra-name
Add infra-name annotations to kube gen/play
2023-08-25 15:23:47 +02:00
OpenShift Merge Robot
c3ac109f17
Merge pull request #19734 from baude/acquireimage
Dedup and refactor image acquisition
2023-08-25 15:00:47 +02:00
OpenShift Merge Robot
584c1e70d0
Merge pull request #19704 from rhatdan/timeout
Set StopTimeout for compat API if not set by client
2023-08-25 05:28:26 -04:00
OpenShift Merge Robot
15d2ef84c0
Merge pull request #19644 from vrothberg/server-notify
system service: unset NOTIFY_SOCKET
2023-08-25 04:55:00 -04:00
Brent Baude
d3618719b1 Dedup and refactor image acquisition
As promised in #19596, this pr deduplicates and refactors image
acquisition.  All virt providers that use FCOS as its default now use
the same code.

[NO NEW TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2023-08-24 20:52:03 -05:00
Jason T. Greene
adf34cbd79 Share podman sock bindings with other WSL distros
Registers a rootless and rootful socket underneath /mnt/wsl/podman-sockets/[machine name]/
This allows podman remote clients on other Linux distributions to access podman.

This also registers the podman root socket under the wheel group, to allow for rootful
linking against /var/run/docker.sock, a use case expected by some clients and APIs.
While this is not recommended practice on a Linux host, a WSL guest is user-isolated
and already enables escalation trivially.

[NO NEW TESTS NEEDED]

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2023-08-24 16:23:50 -05:00
Jason T. Greene
db95e678ad Fix user-mode validation check
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2023-08-24 16:23:50 -05:00
Daniel J Walsh
f32e954b8a
Set StopTimeout for service-container started under podman kube play
Fixes: https://github.com/containers/podman/issues/19139

Service containers are defaulting to 0 seconds for Timeout rather then
the settings in containers.conf.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-08-24 13:24:41 -04:00
Daniel J Walsh
d2ec127c13
Set StopTimeout for compat API if not set by client
Currently containers created via DOCKER API without specifying
StopTimeout are defaulting to 0 seconds. This change should
default them to setting in containers.conf normally 10 seconds.

Fixes: https://github.com/containers/podman/issues/19139

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-08-24 13:24:41 -04:00
Urvashi Mohnani
52ed7fce2a Add infra-name annotations to kube gen/play
Add io.podman.annotations.infra.name annotation to kube play so
users can set the name of the infra container created.
When a pod is created with --infra-name set, the generated
kube yaml will have an infraName annotation set that will
be used when playing the generated yaml with podman.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2023-08-24 11:29:56 -04:00
Valentin Rothberg
a5f6a4a3bf kube: notifyproxy: close once
Do not close a notifyproxy more than once.  Also polish the backend a
bit to reflect ealier changes from commit 4fa307f.

Fixes: #19715
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-08-24 16:24:28 +02:00
Valentin Rothberg
7a94f8c123 system service: unset NOTIFY_SOCKET
Unset the NOTIFY_SOCKET environment variable after sending the MAIN_PID
and READY message.  This avoids any unintentional side-effects of other
code paths using the socket assuming they'd run in a non-server
short-lived Podman process.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-08-24 16:23:01 +02:00
Paul Holzinger
7c9c969815
API attach: return vnd.docker.multiplexed-stream header
The attach API used to always return the Content-Type
`vnd.docker.raw-stream`, however docker api v1.42 added the
`vnd.docker.multiplexed-stream` type when no tty was used.

Follow suit and return the same header for docker api v1.42 and libpod
v4.7.0. This technically allows clients to make a small optimization as
they no longer need to inspect the container to see if they get a raw or
multiplexed stream.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-08-24 16:22:28 +02:00
Paul Holzinger
243f365aa4
create apiutils package
Move SupportedVersion() and IsLibpodRequest() to separate package to
avoid import cycle when using it in libpod.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-08-24 16:19:50 +02:00
Paul Holzinger
c5b4eb9433
api docs: document stream format
Document the attach, exec and logs output stream format. We use the same
format as docker.

Fixes #19280

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-08-24 16:19:50 +02:00
Aditya R
82bd56be74
manifest-push: add support for --force-compression
Adds support for --force-compression which allows end-users to force
push blobs with the selected compresison in --compression option, in
order to make sure that blobs of other compression on registry are not
reused.

Signed-off-by: Aditya R <arajan@redhat.com>
2023-08-24 13:36:04 +05:30
Aditya R
469ace0910
push: add support for --force-compression
Adds support for --force-compression which allows end-users to force
push blobs with the selected compresison in --compression option, in
order to make sure that blobs of other compression on registry are not
reused.

Is equivalent to: force-compression here: https://docs.docker.com/build/exporters/#compression

Closes: https://github.com/containers/podman/issues/18660

Signed-off-by: Aditya R <arajan@redhat.com>
2023-08-24 13:35:58 +05:30
OpenShift Merge Robot
c07f46e15c
Merge pull request #19630 from rhatdan/kube
Expand env variables for cmds/entrypoint with format $(ENV)
2023-08-23 13:56:38 -02:30
OpenShift Merge Robot
d22c336287
Merge pull request #19707 from sstosh/cgroupv1-limit-ignore
Ignore the resource limits on cgroups V1 rootless systems
2023-08-23 09:26:55 -02:30
Daniel J Walsh
148d95d8df
Expand env variables for cmds/entrypoint with format $(ENV)
Kubernetes supports expanding $(FOOBAR) as environment variables within
the kube.YAML. When using podman kube play, we need to do the same, for
supporting these YAML files.

Fixes: #15983

Signed-off-by: Chee Hau Lim <ch33hau@gmail.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-08-23 07:56:17 -04:00
OpenShift Merge Robot
a9c98770e6
Merge pull request #19557 from n1hility/automatic-ports
Implement automatic port reassignment on Windows
2023-08-23 06:49:11 -02:30
Toshiki Sonoda
c416e45766 Ignore the resource limits on cgroups V1 rootless systems
This is a regression for #18052.
When podman ignores the resource limits, s.ResourceLimits needs to be
nil.

[NO NEW TESTS NEEDED]

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2023-08-23 13:58:13 +09:00
Brent Baude
9e680cbc63 Fixups for stopping gvproxy
Paul found logic errors in my earlier code for finding processes and
sending signals.  Some of the logic errors are associated with how
methods behave on different operating systems.  Created a darwin and
linux approach and a windows approach.

Signed-off-by: Brent Baude <bbaude@redhat.com>

[NO NEW TESTS NEEDED]
2023-08-22 16:00:15 -05:00
OpenShift Merge Robot
f38668e322
Merge pull request #19622 from jakecorrenti/umask-on-play
Set default Umask for `podman kube play`
2023-08-22 06:39:58 -02:30
OpenShift Merge Robot
f727428b52
Merge pull request #19663 from rhatdan/ramfs
Add support for ramfs as well as tmpfs in volume mounts
2023-08-21 16:51:06 -02:30
Jake Correnti
5eee8825e8 Set default Umask for podman kube play
Fixes a bug where `podman kube play` fails to set a container's Umask
to the default 0022, and sets it to 0000 instead.

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2023-08-21 10:56:53 -04:00
OpenShift Merge Robot
375eb045ca
Merge pull request #19661 from dfr/freebsd-var-run
libpod: use /var/run instead of /run on FreeBSD
2023-08-21 12:24:50 -02:30
Jason T. Greene
63a8926e96 Implement automatic port reassignment on Windows
While only leveraged by the WSL backend, this commit also adds core
infrastructure for all other backends for future enhancement.

- Adds a common port cross backend allocation registry to prevent duplicate
  assignment across multiple machine instances
- Introduces logic in Start() that detects OS port conflicts and scans for a
  viable replacement port
- Updates connection definitions and server configuration accordingly
- Utilizes a coordinated file lock strategy to prevent racing overwrites of port
  and connection registries
- WSL backend coordinates locking for containers.conf until a future common
  enhancement exists to replace it

[NO NEW TESTS NEEDED]

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2023-08-21 07:23:31 -05:00
Daniel J Walsh
45ce4834af
Add support for ramfs as well as tmpfs in volume mounts
Users want to mount a tmpfs file system with secrets, and make
sure the secret is never saved into swap. They can do this either
by using a ramfs tmpfs mount or by passing `noswap` option to
a tmpfs mount.

Fixes: https://github.com/containers/podman/issues/19659

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-08-21 07:14:57 -04:00
OpenShift Merge Robot
93f194cfb5
Merge pull request #19676 from rhatdan/pod
use container restart policy if user specifies one
2023-08-21 08:34:39 -02:30
Jason T. Greene
bdc3040586 Validate current generation of WSL2 with user-mode-networking
Fail with a helpful message when older version is present.

[NO NEW TESTS NEEDED]

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2023-08-18 23:33:30 -05:00
Daniel J Walsh
67756ac604
use container restart policy if user specifies one
Fixes: https://github.com/containers/podman/issues/19671

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-08-18 06:19:49 -04:00
OpenShift Merge Robot
20f28e538d
Merge pull request #19516 from baude/stopgvproxy
Stop gvproxy on hyperv machine stop
2023-08-18 06:45:39 -02:30
OpenShift Merge Robot
884e5f6934
Merge pull request #19668 from ashley-cui/teststart
Update machine start tests
2023-08-18 06:40:32 -02:30
OpenShift Merge Robot
a161e8b7d8
Merge pull request #19667 from ashley-cui/testrm
Update machine rm tests
2023-08-18 06:37:55 -02:30
Brent Baude
0772d8ddb0 Stop gvproxy on hyperv machine stop
when we stop a machine, we need to also stop the gvproxy process that is
running.

JIRA: RUN-1828

also, remove unused applehv function for ssh

Signed-off-by: Brent Baude <bbaude@redhat.com>

[NO NEW TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2023-08-17 15:21:06 -05:00
Ashley Cui
36e09f18bb Update machine list test
check if --format json returns valid json

Signed-off-by: Ashley Cui <acui@redhat.com>
2023-08-17 15:05:48 -04:00
Ashley Cui
8b29901316 Update machine start tests
Start machine that is already running
Start bad name

Signed-off-by: Ashley Cui <acui@redhat.com>
2023-08-17 15:04:18 -04:00
Ashley Cui
c3dbfa9a1e Update machine rm tests
Remove with --save-ignition, --save-image, --save-keys
Removing a running machine should result in error

Signed-off-by: Ashley Cui <acui@redhat.com>
2023-08-17 15:00:35 -04:00
Doug Rabson
27b41f0877 libpod: use /var/run instead of /run on FreeBSD
This changes /run to /var/run for .containerenv and secrets in FreeBSD
containers for consistency with FreeBSD path conventions. Running Linux
containers on FreeBSD hosts continue to use /run for compatibility.

[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2023-08-17 14:04:53 +01:00
OpenShift Merge Robot
f559fc55bb
Merge pull request #19567 from vrothberg/RUN-1873
add --module flag
2023-08-16 16:23:54 -02:30
Doug Rabson
53dd37cc43 pkg/specgen: add support for read-only root on FreeBSD
This just sets the flag in the runtime spec - the actual implementation
is in the OCI runtime.

[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2023-08-16 13:41:04 +01:00
Valentin Rothberg
d5841ed528 add --module flag
Support a new concept in containers.conf called "modules".  A "module"
is a containers.conf file located at a specific directory.  More than
one module can be loaded in the specified order, following existing
override semantics.

There are three directories to load modules from:
 - $CONFIG_HOME/containers/containers.conf.modules
 - /etc/containers/containers.conf.modules
 - /usr/share/containers/containers.conf.modules

With CONFIG_HOME pointing to $HOME/.config or, if set, $XDG_CONFIG_HOME.
Absolute paths will be loaded as is, relative paths will be resolved
relative to the three directories above allowing for admin configs
(/etc/) to override system configs (/usr/share/) and user configs
($CONFIG_HOME) to override admin configs.

Pulls in containers/common/pull/1599.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-08-16 14:32:35 +02:00
OpenShift Merge Robot
9cd4286922
Merge pull request #19596 from baude/allowdownload
enabled hyperv image downloads
2023-08-16 09:52:18 -02:30
Michal Biesek
252f51de84
GetFcosArch add riscv64 arch
[NO NEW TESTS NEEDED]

Signed-off-by: Michal Biesek <michalbiesek@gmail.com>
2023-08-15 15:29:24 +02:00