Commit graph

6153 commits

Author SHA1 Message Date
openshift-merge-bot[bot]
a1a5bd3bd5
Merge pull request #21493 from mporrato/fix-21211
kube play: always pull when both imagePullPolicy and tag are missing
2024-03-27 21:58:45 +00:00
Brent Baude
ffb8b2dc36 Fix reference to deprecated types.Info
upstream docker folks deprecated types.Info in favor of system.Info.

fixes #22132 and #22117

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-03-27 08:17:10 -05:00
Christophe Fergeau
d305e70af8
applehv: Print vfkit logs in --log-level debug
There has been various issues with vfkit exiting with
"Error: vfkit exited unexpectedly with exit code 1"

Among other reasons, this can be caused by vfkit being
built without the com.apple.security.virtualization
entitlement, and this can also happen when running
vfkit.x86_64 on Apple silicon hardware.

At the moment, the vfkit logs are not available, so there is no easy way
to know what's happening. This PR redirects vfkit stdout/stderr to
podman's log when --log-level debug is used.

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
2024-03-27 09:59:31 +01:00
openshift-merge-bot[bot]
5c39ddca5d
Merge pull request #22140 from baude/hypervrmf
hyperv: fix machine rm -r
2024-03-26 14:03:24 +00:00
openshift-merge-bot[bot]
ecdc3d255b
Merge pull request #22161 from baude/hypervrequireadmin
hyperv: error if not admin
2024-03-26 12:27:09 +00:00
openshift-merge-bot[bot]
e64d81481d
Merge pull request #22124 from diplane/annotations
Add support for annotations
2024-03-25 18:37:24 +00:00
Brent Baude
c62c74970f hyperv: error if not admin
creating vsocks in windows requires admin privileges.  there could be
some workarounds made in the future,but the general deal has
always been, you need to be admin.  lets enforce this with an error
until those work-arounds can be implemented.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-03-25 10:47:57 -05:00
Jason T. Greene
11415b3e74 Use built-in ssh impl for all non-pty operations
Windows is not guaranteed to have the SSH feature installed, so prefer the use
of the built-in ssh client for all operations other than podman machine ssh,
which requires terminal pty logic. This restores previous behavior in 4.x.

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2024-03-24 21:25:22 -05:00
diplane
83fe867c14 Add support for annotations
Fix following issues:
- create container API handler ignores Annotations from HostConfig
- inspect container API handler does not provide Annotations as
  part of HostConfig

Signed-off-by: diplane <diplane3d@gmail.com>
2024-03-22 19:38:22 +00:00
Brent Baude
a6ffb5656f hyperv: fix machine rm -r
this pr fixes two hyperv bugs.  previous podman 5 versions of hyperv
failed to actually remove the vm from hyperv when machine rm -f was
called.

also fixes an annoying bug where removal of the hyperv ignition entries
were failing because this can only be done (with the current api) when
the vm is running.  new api in latest libhvee fixes this.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-03-22 11:09:17 -05:00
openshift-merge-bot[bot]
4f76c7a0c7
Merge pull request #22120 from garthy/dont_stage_tarfile
Dont save remote build context in temp file but stream and extract
2024-03-22 13:34:11 +00:00
Garth Bushell
b2d0b92db2 Dont save remote context in temp file but stream and extract
Signed-off-by: Garth Bushell <garth@garthy.com>
2024-03-21 15:39:01 +00:00
openshift-merge-bot[bot]
aaa6dc3cc6
Merge pull request #22112 from Luap99/remote-buildah-isolation
fix remote build isolation when server runs as root
2024-03-21 15:34:12 +00:00
Paul Holzinger
493179be45
fix remote build isolation when server runs as root
I am really not sure why the caller even should have the option to set
this. We should always use the correct isolation type based on the
privileges the server runs under never the client. podman-remote build
seems to send the default based on its local privs which was wrong as
well. To fix this I also changed the client to send the default if the
isolation flag is not set.

Fixes #22109

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-03-21 14:17:55 +01:00
Giuseppe Scrivano
4740367330
util: use private propagation with bind
when the "bind" option is used, do not use the "rprivate" propagation
as it would inhibit the effect of "bind", instead default to "private".

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-21 11:33:58 +01:00
Giuseppe Scrivano
9a13b8f17d
util: add some tests for ProcessOptions
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-21 11:33:57 +01:00
Giuseppe Scrivano
50d764b0e6
util: refactor ProcessOptions into an internal function
this is needed to add tests for the function without accessing the
file system.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-21 11:33:02 +01:00
Giuseppe Scrivano
49ab250cf9
util: rename files to snake case
use the same convention used for other files.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-21 11:33:02 +01:00
openshift-merge-bot[bot]
5bcafe7ae0
Merge pull request #22019 from saschagrunert/cri-o-annotations
Remove CRI-O related annotations
2024-03-20 15:51:29 +00:00
openshift-merge-bot[bot]
c35fa14616
Merge pull request #22083 from giuseppe/drop-conversion
utils: drop conversion float->string->float
2024-03-20 15:37:42 +00:00
openshift-merge-bot[bot]
2efbba0e34
Merge pull request #22080 from giuseppe/fix-duplicate-mapping-keep-id
utils: do not generate duplicate range
2024-03-20 11:52:10 +00:00
Jason T. Greene
3f2b8bb314 Use correct extension in suite
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2024-03-19 13:07:45 -05:00
Giuseppe Scrivano
2566ee2f38
utils: drop conversion float->string->float
remove unclear conversion to string to handle float precision.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-18 23:06:06 +01:00
Giuseppe Scrivano
816c7279e1
utils: do not generate duplicate range
do not generate a duplicated range when --userns=keep-id:uid=0 or
--userns=keep-id:gid=0 are used.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-18 22:31:51 +01:00
Giuseppe Scrivano
0e38815387
utils: add test for the new function
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-18 22:13:03 +01:00
Giuseppe Scrivano
cda3dc83d8
utils: move rootless code to a new function
it is a preparatory patch.  It should not affect functionalities.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-18 21:53:31 +01:00
openshift-merge-bot[bot]
112aeb7fda
Merge pull request #22055 from garthy/build_context_cleanup
Cleanup build scratch dir if remote end disconnects while passing the context
2024-03-18 17:08:53 +00:00
Jason T. Greene
7fbdd9e6e2 Adjust to the standard location of gvforwarder used in new images
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2024-03-16 14:03:40 -05:00
Jason T. Greene
fdad9ab1ff Switch to 5.x WSL machine os stream using new automation
Includes a switch from XZ to ZSTD for significantly improved fetch performance

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2024-03-15 23:27:38 -05:00
Garth Bushell
3a9eef4bee Cleanup build scratch dir if remote end disconnects while passing the context
Signed-off-by: Garth Bushell <garth@garthy.com>
2024-03-15 10:39:23 +00:00
openshift-merge-bot[bot]
5067f0fd65
Merge pull request #22041 from garthy/speed_up_context_compress
Use faster gzip for compression for 3x build speedup for large context send to remote
2024-03-14 17:21:16 +00:00
openshift-merge-bot[bot]
c15c815818
Merge pull request #22032 from Luap99/machine-lock
podman machine start: make checkExclusiveActiveVM check race free
2024-03-14 14:25:24 +00:00
Garth Bushell
3f068d1973 Use faster gzip for compression for 3x speedup for sending large contexts to remote
Signed-off-by: Garth Bushell <garth@garthy.com>
2024-03-14 11:35:37 +00:00
openshift-merge-bot[bot]
841114369d
Merge pull request #22003 from nachtjasmin/fix/20903-ensure-livenessprobe-affects-containers
Pass pod restart policy to individual containers
2024-03-14 10:53:31 +00:00
Paul Holzinger
e82d196269
pkg/machine: make checkExclusiveActiveVM race free
We need to take another lock to prevent concurrent starts from different
machines.

I manually tested it by starting three VM in parallel with:
podman machine start & podman machine start test1 & podman machine start test2

I also added a CI test that seems to work as expected (failed with the
old binary, worked with the new)

Before this patch I was able to start more than VM, with this patch it
now only starts one of them and the other ones will fail to start with
a proper error.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-03-14 11:13:08 +01:00
Paul Holzinger
b238303a40
pkg/machine/wsl: remove unused CheckExclusiveActiveVM()
This function is not used, it has been refactored in the general
starting good higher up the stack.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-03-14 11:08:16 +01:00
Paul Holzinger
c9a5c4b943
pkg/machine: CheckExclusiveActiveVM should also check for starting
Also make the error message there better.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-03-14 11:07:56 +01:00
Paul Holzinger
1dfd3d3d12
pkg/machine: refresh config after we hold lock
Currently we first read the conf and then lock, this is racy because
while we wait for the lock another process might change the state so
the only way to have the actual current state is to read the file
while holding the lock.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-03-14 11:06:04 +01:00
openshift-merge-bot[bot]
358ac20a1e
Merge pull request #22028 from n1hility/fix-api-socket
Change API socket to be machine name isolated
2024-03-13 19:36:56 +00:00
Jason T. Greene
e58cb97de1 Change API socket to be machine name isolated
- Fixes conflicts such as removal of second machine deleting a socket of a
  the first machine while it's running
- Move API socket into runtime directory for consistency
- Add API and gvproxy sockets to removal list
- Cleanup related logic

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2024-03-13 13:28:14 -05:00
openshift-merge-bot[bot]
c25bfe1c8c
Merge pull request #21864 from l0rd/compress-refactoring-v5-plus-plus
Machine decompress.go refactoring follow-up
2024-03-13 16:49:17 +00:00
Brent Baude
d7bc7b7b41 do not require policy.json
we are having second thoughts about *requiring* a policy.json on podman
machine hosts.  we are concerned that we need to work out some more use
cases to be sure we do not make choices now that limit us in the near
term future. for example, should the policy files be the same for
container images and machine images? And should one live on the host
machine and the other live in the machine?

therefore, if a policy.json *is* present in the correct location, we will use and honor it; however, if it does not, we will allow the machine image to be pulled without a policy.

Signed-off-by: Brent Baude <baude@redhat.com>
Co-authored-by: Paul Holzinger <45212748+Luap99@users.noreply.github.com>
Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-03-13 09:07:51 -05:00
Mario Loriedo
82597144b6 Machine decompress.go refactoring follow-up
1. Added the xz decompression unit tests

2. Removed the xz implementation to use the one from c/images

3. Removed the specific macos gzip, zstd compressor and use
   the generic compressor but with SparseWriter if GOOS == darwin

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-03-13 00:58:50 +01:00
openshift-merge-bot[bot]
c2695fc9d2
Merge pull request #22026 from baude/finalmachineimageref
Add final machine endpoint
2024-03-12 16:50:59 +00:00
Brent Baude
4c5d26f6f9 Add final machine endpoint
Adding the final machine endpoint as quay.io/podman/machine-os in the
Podman code.  As a reminder, we decided we would set this in containers
conf once things settle down and this code would then be removed.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-03-12 09:37:57 -05:00
Sascha Grunert
1901403eda
Removing CRI-O related annotations
The annotations should be maintained by CRI-O itself to decouple the
projects from a dependency perspective.

[NO NEW TESTS NEEDED]

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2024-03-12 14:56:06 +01:00
Paul Holzinger
068ddfd19f
update API doc version to 5.0.0
Also update the website to display the correct swagger doc for the right
version, the 5.0 swagger file will not exist until we branch but I added
it anyway so we do not forget it.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-03-12 12:06:15 +01:00
Jasmin Oster
d7fa0aa351
Pass the restart policy to the individual containers
Healthchecks, defined in a .yaml file as livenessProbe did not had any
effect. They were executing as intended, containers were marked as
unhealthy, yet no action was taken. This was never the intended
behaviour, as observed by the comment:

> if restart policy is in place, ensure the health check enforces it

A minimal example is tracked in containers/podman#20903 [1] with the
following YAML:

```yaml
apiVersion: v1
kind: Pod
metadata:
  name: ubi-httpd-24
spec:
  restartPolicy: Always
  containers:
    - name: ubi8-httpd
      image: registry.access.redhat.com/rhscl/httpd-24-rhel7:2.4-217
      livenessProbe:
        httpGet:
          path: "/"
          port: 8081
```

By passing down the restart policy (and using constants instead of
actually wrong hard-coded ones), Podman actually restarts the container
now.

[1]: https://github.com/containers/podman/issues/20903

Closes #20903.

Signed-off-by: Jasmin Oster <nachtjasmin@posteo.de>
2024-03-11 20:39:54 +01:00
openshift-merge-bot[bot]
4541f0c4ed
Merge pull request #21980 from Luap99/machine-locking-fixes
more machine locking fixes
2024-03-07 16:51:37 +00:00
openshift-merge-bot[bot]
15e508a639
Merge pull request #21936 from l0rd/vmfile-peek
Don't read full VM File before decompressing
2024-03-07 16:40:09 +00:00