Commit Graph

3869 Commits

Author SHA1 Message Date
Valentin Rothberg
ff54aaa634 podman create: building local pause image: do not read ignore files
Make sure to ignore local {container,docker}ignore files when building a
local pause image.  Otherwise, we may mistakenly not be able to copy
catatonit into the build container.

Fixes: #13529
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-03-17 14:18:16 +01:00
OpenShift Merge Robot
bbae81a291 Merge pull request #13489 from Luap99/k8s
move k8s deps into podman
2022-03-16 04:27:41 -04:00
Paul Holzinger
0db184fb08 fix breaking change in pkg/bindings
pkg/bindings is considered stable. We cannot make changes that would
break any users. If someone uses this field their code would fail to
compile. Since the fix is obviously correct we will keep it but also
add the old field back in to keep compatibility with old code.

When both fields are set ImportArchive is preferred over ImportAchive.

Fixes changes from commit 217197340c

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-15 15:06:42 +01:00
Paul Holzinger
19d0c5a8a3 pkg/k8s.io: add small readme with copyright notice
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-15 14:48:11 +01:00
Paul Holzinger
dd9e4dc72b pkg/k8s.io/api/core/v1: remove unneeded types
Remove types that are not applicable for podman. This are types I do not
think we need, there is definitely more that could be removed but this
should be handled by someone who knows the k8s code better than me.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-15 14:48:11 +01:00
Paul Holzinger
f106867acd pkg/k8s.io/...: remove more unneeded files
We do not use the types defined in these fields.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-15 14:48:11 +01:00
Paul Holzinger
0612f859b8 pkg/k8s.io/...: remove protobuf field tags
Since we do not use protobuf we can remove these field tags. This will
save some KB in the final binary size.

This change was automated with the following commands:
find pkg/k8s.io/ -type f -name "*.go" -exec sed -i -e 's/\sprotobuf\:\".*\"//g' {} +
find pkg/k8s.io/ -type f -name "*.go" -exec sed -i -e 's/\s`protobuf\:\".*\"`//g' {} +

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-15 14:48:11 +01:00
Paul Holzinger
f8577766d0 pkg/k8s.io/...: fix lint errors
Fix linting errors. We use different/stricter linters, instead of
skipping these packages we should fix it.

Most errors are about naming conventions, since I do not want to change
the names I added the nolint comment there. I also removed some unused
fields where the linter complained.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-15 14:48:10 +01:00
Paul Holzinger
a0ad1f2ad4 remove unneeded k8s code
There is a lot of unneeded code, k8s is the by far the biggest
dependency in podman. We should remove as much as possible so that we
only have the stuff left that we use.

This is just a quick skim over the code which removes a lot of the
generated code and many packages that are now unused.
I know that this will be impossible to properly review. I will try to
make smaller changes in follow up work.

Right now this reduces about 8 MB in binary size!!!

[NO NEW TESTS NEEDED] Hopefully existing tests will catch any problems.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-15 14:48:08 +01:00
Paul Holzinger
918fc88a98 move k8s deps into podman
We only need a small part of the k8s dependencies but they are the
biggest dependencies in podman by far. Moving them into podman allows us
to remove the unnecessary parts.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-15 14:46:29 +01:00
OpenShift Merge Robot
33d808108f Merge pull request #13499 from rst0git/fix-typo
Fix typo
2022-03-14 10:28:33 -04:00
Radostin Stoyanov
217197340c Fix typo
[NO NEW TESTS NEEDED]

Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
2022-03-14 10:53:31 +00:00
LStandman
e8968c867f Add support for --chrootdirs
Signed-off-by: LStandman <65296484+LStandman@users.noreply.github.com>
2022-03-14 10:31:58 +02:00
Jason T. Greene
edc62b5294 Fixes TTY & resizing on Mac and Windows
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2022-03-12 12:00:38 -06:00
Daniel J Walsh
feaa1a134a Add podman play kube --annotation
Allow users to add annotions in the podman play kube command.
This PR Also fixes the fact that annotations in the pod spec were
not being passed down to containers.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-03-09 17:30:01 -05:00
OpenShift Merge Robot
acfcecf2ae Merge pull request #12913 from rhatdan/kube
Add --context-dir option to podman play kube
2022-03-09 16:19:59 -05:00
OpenShift Merge Robot
d3e6c2a7ab Merge pull request #13471 from Luap99/bump-mpbv7
Use github.com/vbauerster/mpb/v7 in pkg/machine
2022-03-09 15:51:57 -05:00
Paul Holzinger
30bf065c3f Use github.com/vbauerster/mpb/v7 in pkg/machine
We already use v7 in c/image so podman should use the same version to
prevent duplication.

This saves 170 KB binary size.

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-09 20:02:10 +01:00
OpenShift Merge Robot
f960ac7ec3 Merge pull request #13470 from Luap99/yamlv2
use gopkg.in/yaml.v2 instead of v3
2022-03-09 12:50:01 -05:00
OpenShift Merge Robot
418ab2e5e1 Merge pull request #13421 from hshiina/device-rule
Set default rule at the head of device configuration
2022-03-09 10:28:24 -05:00
Paul Holzinger
8f2f8d4cad use gopkg.in/yaml.v2 instead of v3
Many dependencies already import gopkg.in/yaml.v2, podman is the only
user of the v3 version except  github.com/stretchr/testify but this is
only a testing dependency so it will not end up in the binary.

This change reduces the podman binary size from 54740 to 54260 KB on my
system.

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-09 15:44:05 +01:00
OpenShift Merge Robot
41e2c9943e Merge pull request #13465 from n1hility/improve-install-msg
Improve agent install message to add restart instructions
2022-03-09 09:25:57 -05:00
Jason T. Greene
a7c4691bff Improve agent install message to add restart instructions
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2022-03-08 21:54:48 -06:00
Brent Baude
5b51b42cc8 machine rm -f stops and removes machine
If you want to remove a running machine, you can now pass the --force/-f
to podman machine rm and the machine will be stopped and removed without
confirmations.

Fixes: #13448

[NO NEW TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2022-03-08 15:47:32 -06:00
Hironori Shiina
d2f77c2568 Set default rule at the head of device configuration
The default rule should be set at the head of device configuration.
Otherwise, rules for user devices are overridden by the default rule so
that any access to the user devices are denied.

Signed-off-by: Hironori Shiina <shiina.hironori@jp.fujitsu.com>
2022-03-07 18:12:17 -05:00
OpenShift Merge Robot
4a242b1327 Merge pull request #13409 from baude/virtfsdarwin
MacOS improvements
2022-03-07 17:28:01 -05:00
Brent Baude
cdb6deb148 MacOS improvements
* Enable support of virtfs in Podman and darwin.  At the time of this writing, it requires a special patch not yet included in upstream qemu.
* Prefer to use a specially built qemu to support virtfs.  The qemu is installed under libexec/podman.

[NO NEW TESTS NEEDED]
Signed-off-by: Brent Baude <bbaude@redhat.com>
2022-03-07 14:05:06 -06:00
OpenShift Merge Robot
2873f089f7 Merge pull request #13414 from rvandernoort/exec_delay
Add ExitCommandDelay configuration use in API exec handler
2022-03-07 13:32:52 -05:00
OpenShift Merge Robot
e1f00b4512 Merge pull request #13442 from tricktron/rm-mounted-host-socket-on-macos
`podman machine rm` removes the mounted socket file on macOS
2022-03-07 08:36:52 -05:00
Thibault Gagnaux
01514f33ba Fixes: #13301 ("machine rm removes the mounted socket file on macos")
[NO NEW TESTS NEEDED]
Signed-off-by: Thibault Gagnaux <tgagnaux@gmail.com>
2022-03-06 16:24:56 +01:00
Urvashi Mohnani
d302c08cff Throw an error if kube yaml has duplicate ctr names
Error out if the kube yaml passed to play kube has more
than one container or init container with the same name.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-03-04 15:08:52 -05:00
Rover van der Noort
2fb6a8daf6 Add ExitCommandDelay configuration use in API exec handler
[NO NEW TESTS NEEDED]

Signed-off-by: Rover van der Noort <s.r.vandernoort@student.tudelft.nl>
2022-03-04 00:57:35 +01:00
Brent Baude
22f331e540 Revert "use GetRuntimeDir() from c/common"
This reverts commit fc5cf812c8.

[NO NEW TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2022-03-01 13:23:43 -06:00
Daniel J Walsh
675d775eb5 Add --context-dir option to podman play kube
This option was requested so that users could specify alternate
locations to find context directories for each image build. It
requites the --build option to be set.

Partion Fix: https://github.com/containers/podman/issues/12485

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-03-01 08:47:09 -05:00
Daniel J Walsh
3dc1b8e83f Add podman volume mount support
Fixes: https://github.com/containers/podman/issues/12768

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-02-28 14:26:22 -05:00
OpenShift Merge Robot
874bde2050 Merge pull request #13325 from xordspar0/configmap-error-msg
Improve the error message for usused configMaps
2022-02-24 12:16:40 -05:00
Jordan Christiansen
a7fc8a1460 Improve the error message for usused configMaps
If you run `podman play kube` on a yaml file that only contains
configMaps, podman will fail with the error:

	Error: YAML document does not contain any supported kube kind

This is not strictly true; configMaps are a supported kube kind. The
problem is that configMaps aren't a standalone entity. They have to be
used in a container somewhere, otherwise they don't do anything.

This change adds a new message in the case when there only configMaps
resources. It would be helpful if podman reported which configMaps are
unused on every invocation of kube play. However, even if that feedback
were added, this new error messages still helpfully explains the reason
that podman is not creating any resources.

[NO NEW TESTS NEEDED]

Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
2022-02-24 08:59:11 -06:00
OpenShift Merge Robot
0d2bd53f37 Merge pull request #13157 from ydayagi/main
play kube: set defaults to container resources
2022-02-23 13:34:59 -05:00
OpenShift Merge Robot
991c90de1f Merge pull request #13314 from flouthoc/container-commit-squash
container-commit: support `--squash` to squash layers into one if users want.
2022-02-23 13:07:00 -05:00
Aditya R
fbbcb957c7 container-commit: support --squash to squash layers into one
Allow users to commit containers into a single layer.

Usage
```bash
podman container commit --squash <name>
```

Signed-off-by: Aditya R <arajan@redhat.com>
2022-02-23 17:38:28 +05:30
Giuseppe Scrivano
ed73040b35 kube: honor mount propagation mode
convert the propagation mode specified for the mount to the expected
Linux mount option.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-02-23 13:01:40 +01:00
Yaron Dayagi
5cba5cbfdb play kube: set defaults to container resources
this fixes https://github.com/containers/podman/issues/13115

the change tries to immitate k8s behavior.
when limits are not set the container's limits are all CPU and all RAM
when requests are missing then they are equal to limits

Signed-off-by: Yaron Dayagi <ydayagi@redhat.com>
2022-02-23 11:00:09 +02:00
Daniel J Walsh
6f7a803d06 Cleanup display of trust with transports
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-02-22 15:08:58 -05:00
OpenShift Merge Robot
fab82a7c9c Merge pull request #13059 from cdoern/clone
Implement Podman Container Clone
2022-02-22 10:10:49 -05:00
OpenShift Merge Robot
a746a61a17 Merge pull request #13286 from flouthoc/kube-build-false-default
kube: honor `--build=false` if specified.
2022-02-21 15:33:39 -05:00
Aditya R
9ce61e3a49 kube: honor --build=false and make --build=true by default
`podman play kube` tries to build images even if `--build` is set to
false so lets honor that and make `--build` , `true` by default so it
matches the original behviour.

Signed-off-by: Aditya R <arajan@redhat.com>
2022-02-21 23:52:48 +05:30
Paul Holzinger
fc5cf812c8 use GetRuntimeDir() from c/common
To prevent duplication and potential bugs we should use the same
GetRuntimeDir function that is used in c/common.

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-02-21 16:03:25 +01:00
cdoern
94df701512 Implement Podman Container Clone
podman container clone takes the id of an existing continer and creates a specgen from the given container's config
recreating all proper namespaces and overriding spec options like resource limits and the container name if given in the cli options

this command utilizes the common function DefineCreateFlags meaning that we can funnel as many create options as we want
into clone over time allowing the user to clone with as much or as little of the original config as they want.

container clone takes a second argument which is a new name and a third argument which is an image name to use instead of the original container's

the current supported flags are:

--destroy (remove the original container)
--name (new ctr name)
--cpus (sets cpu period and quota)
--cpuset-cpus
--cpu-period
--cpu-rt-period
--cpu-rt-runtime
--cpu-shares
--cpuset-mems
--memory
--run

resolves #10875

Signed-off-by: cdoern <cdoern@redhat.com>
Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
Signed-off-by: cdoern <cdoern@redhat.com>
2022-02-20 21:11:14 -05:00
OpenShift Merge Robot
deb75f5654 Merge pull request #13228 from giuseppe/idmap-options
pkg: support passing down options for idmap
2022-02-17 05:04:00 -05:00
Robb Manes
90066af62e Calculate device major/minor using bitshift
Previously, devices with a major/minor number >256 would fail to be
detected.  Switch to using bitwise conversion (similar to
sys/sysmacros in C).

[NO NEW TESTS NEEDED]

Signed-off-by: Robb Manes <robbmanes@protonmail.com>
2022-02-16 15:47:02 -05:00