Bug 2136283
Summary: | [RFE] python-podman: Podman support to perform custom actions on unhealthy containers [rhel-9.1.0.z] | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 9 | Reporter: | Tom Sweeney <tsweeney> |
Component: | python-podman | Assignee: | Jindrich Novy <jnovy> |
Status: | CLOSED ERRATA | QA Contact: | Alex Jia <ajia> |
Severity: | medium | Docs Contact: | |
Priority: | urgent | ||
Version: | 9.2 | CC: | ajia, asreddy, bbaude, cdoern, ddarrah, dornelas, dwalsh, dwojewod, jligon, jnovy, jwboyer, lsm5, mheon, pgm-rhel-tools, pthomas, snanda, toneata, tsweeney, umohnani, vrothber, wwurzbac, ypu |
Target Milestone: | rc | Keywords: | FutureFeature, Triaged, ZStream |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | python-podman-4.2.1-1.el9_1 | Doc Type: | Enhancement |
Doc Text: | Story Points: | --- | |
Clone Of: | 2132360 | Environment: | |
Last Closed: | 2022-11-15 16:00:11 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 2131741, 2132360 | ||
Bug Blocks: |
Comment 1
Tom Sweeney
2022-10-19 19:53:15 UTC
[test@kvm-08-guest24 ~]$ podman inspect gallant_mahavira|grep -iA2 Healthcheck "Healthcheck": { "Test": [ "CMD-SHELL curl http://localhost || exit" -- "HealthcheckOnFailureAction": "invalid", "Umask": "0022", "Timeout": 0, NOTE: the value of HealthcheckOnFailureAction is 'invalid' in here, please help confirm whether it's acceptable, for details as follows, thanks! [test@kvm-08-guest24 ~]$ cat /etc/redhat-release Red Hat Enterprise Linux release 9.1 (Plow) [test@kvm-08-guest24 ~]$ rpm -q python3-podman podman crun systemd kernel python3-podman-4.2.1-1.el9_1.noarch podman-4.2.0-5.el9_1.x86_64 crun-1.5-1.el9.x86_64 systemd-250-12.el9_1.x86_64 kernel-5.14.0-162.6.1.el9_1.x86_64 [test@kvm-08-guest24 ~]$ podman system service -t 0 & [1] 21616 [test@kvm-08-guest24 ~]$ netstat -lanp|grep podman.sock (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) unix 2 [ ACC ] STREAM LISTENING 50341 21629/podman /run/user/1000/podman/podman.sock [test@kvm-08-guest24 ~]$ cat test.py """Demonstrate PodmanClient.""" import json from podman import PodmanClient alpine_image = "quay.io/libpod/alpine:latest" uri = "unix:///run/user/1000/podman/podman.sock" def test_container_healtchecks(): """Test passing various healthcheck options""" with PodmanClient(base_url=uri) as client: containers = [] parameters = {} version = client.version() print("Release: ", version["Version"]) print("Compatible API: ", version["ApiVersion"]) print("Podman API: ", version["Components"][0]["Details"]["APIVersion"], "\n") parameters['healthcheck'] = {'Test': ['CMD-SHELL curl http://localhost || exit']} parameters['health_check_on_failure_action'] = 1 container = client.containers.create(alpine_image, **parameters) print("current container:%s" % container) containers.append(container) if __name__ == "__main__": test_container_healtchecks() [test@kvm-08-guest24 ~]$ podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [test@kvm-08-guest24 ~]$ podman pull quay.io/libpod/alpine:latest Trying to pull quay.io/libpod/alpine:latest... Getting image source signatures Copying blob 9d16cba9fb96 done Copying config 9617696764 done Writing manifest to image destination Storing signatures 961769676411f082461f9ef46626dd7a2d1e2b2a38e6a44364bcbecf51e66dd4 [test@kvm-08-guest24 ~]$ python3 test.py Release: 4.2.0 Compatible API: 1.41 Podman API: 4.2.0 current container:<Container: d1c762ab95> [test@kvm-08-guest24 ~]$ podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d1c762ab957f quay.io/libpod/alpine:latest /bin/sh 15 seconds ago Created gallant_mahavira [test@kvm-08-guest24 ~]$ podman inspect gallant_mahavira|grep -iA2 Healthcheck "Healthcheck": { "Test": [ "CMD-SHELL curl http://localhost || exit" -- "HealthcheckOnFailureAction": "invalid", "Umask": "0022", "Timeout": 0, NOTE: the value of HealthcheckOnFailureAction is 'invalid' in here, please help confirm if it's acceptable, thanks! I think this is expected given: https://github.com/containers/podman/blob/7e7db23dbf163837ba3216fea09b31d2c8409fb3/libpod/define/healthchecks.go#L71-L82. Specifying 1 matches up with the invalid iota. Specgen is more robust leading users to be able to pick choices that don't necessarily help them... Can you try testing with 2 @ajia (In reply to Charlie Doern from comment #10) > I think this is expected given: > https://github.com/containers/podman/blob/ > 7e7db23dbf163837ba3216fea09b31d2c8409fb3/libpod/define/healthchecks.go#L71- > L82. Specifying 1 matches up with the invalid iota. Specgen is more robust > leading users to be able to pick choices that don't necessarily help them... > Can you try testing with 2 @ajia Test results as expected when setting health_check_on_failure_action value to 2, thanks a lot! [test@kvm-08-guest24 ~]$ grep health_check_on_failure_action test.py parameters['health_check_on_failure_action'] = 2 [test@kvm-08-guest24 ~]$ podman inspect romantic_jang|grep -iA2 Healthcheck "Healthcheck": { "Test": [ "CMD-SHELL curl http://localhost || exit" -- "HealthcheckOnFailureAction": "kill", "Umask": "0022", "Timeout": 0, This bug has been verified on python-podman-4.2.1-1.el9_1. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (python-podman bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2022:8439 |