summaryrefslogtreecommitdiff
path: root/cmd/podman/common/specgen.go
Commit message (Collapse)AuthorAge
* add {generate,play} kubeValentin Rothberg2020-05-06
| | | | | | | | | | | | | | | | | | | Add the `podman generate kube` and `podman play kube` command. The code has largely been copied from Podman v1 but restructured to not leak the K8s core API into the (remote) client. Both commands are added in the same commit to allow for enabling the tests at the same time. Move some exports from `cmd/podman/common` to the appropriate places in the backend to avoid circular dependencies. Move definitions of label annotations to `libpod/define` and set the security-opt labels in the frontend to make kube tests pass. Implement rest endpoints, bindings and the tunnel interface. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Add small fixes for 'podman run' from diffing inspectMatthew Heon2020-05-05
| | | | | | | | | | | | | | | | | | | | | | | | To try and identify differences between Podman v1.9 and master, I ran a series of `podman run` commands with various flags through each, then inspecting the resulting containers and diffed the inspect JSON between each. This identified a number of issues which are fixed in this PR. In order of discovery: - Podman v2 gave short names for images, where Podman v1 gave the fully-qualified name. Simple enough fix (get image tags and use the first one if they're available) - The --restart flag was not being parsed correctly when a number of retries was specified. Parsing has been corrected. - The -m flag was not setting the swap limit (simple fix to set swap in that case if it's not explicitly set by the user) - The --cpus flag was completely nonfunctional (wired in its logic) Tests have been added for all of these to catch future regressions. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* Rework port parsing to support --expose and -PMatthew Heon2020-05-04
| | | | | | | | | | | | | | | | | | | | | As part of this, make a major change to the type we use to represent port mappings in SpecGen (from using existing OCICNI structs to using our own custom one). This struct has the advantage of supporting ranges, massively reducing traffic over the wire for Podman commands using them (for example, the `podman run -p 5000-6000` command will now send only one struct instead of 1000). This struct also allows us to easily validate which ports are in use, and which are not, which is necessary for --expose. Once we have parsed the ports from the new struct, we can produce an accurate map including all currently requested ports, and use that to determine what ports need to be exposed (some requested exposed ports may already be included in a mapping from --publish and will be ignored) and what open ports on the host we can map them to. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* Merge pull request #6057 from baude/v2networkingOpenShift Merge Robot2020-05-01
|\ | | | | v2networking enable commands
| * add provided cni networks to spec genbaude2020-05-01
| | | | | | | | | | | | enable final integration tests for networking. Signed-off-by: baude <bbaude@redhat.com>
* | Merge pull request #6016 from giuseppe/fix-createOpenShift Merge Robot2020-05-01
|\ \ | |/ |/| v2, podman: fix create and entrypoint tests
| * cmd, podman: do not override entrypoint if unsetGiuseppe Scrivano2020-04-30
| | | | | | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | V2 enable ps testsJhon Honce2020-04-29
|/ | | | | | | | * Combine cobra.Command helper functions into validate package from registry and common packages * Introduce ChoiceValue for flags Signed-off-by: Jhon Honce <jhonce@redhat.com>
* specgen: remove dead codeGiuseppe Scrivano2020-04-28
| | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* Merge pull request #6000 from mheon/volume_backend_flagsOpenShift Merge Robot2020-04-27
|\ | | | | Add support for volumes-from, image volumes, init
| * Add support for volumes-from, image volumes, initMatthew Heon2020-04-27
| | | | | | | | | | | | | | | | | | | | | | This should complete Podmanv2's support for volume-related flags. Most code was sourced from the old pkg/spec implementation with modifications to account for the split between frontend flags (volume, mount, tmpfs) and the backend flags implemented here. Also enables tests for podman run with volumes Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* | Make podman container list == podman psDaniel J Walsh2020-04-27
|/ | | | | | | | | | Also make podman create -p PUBLISHPorts work. This PR fixes ps_test.go Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Merge pull request #5994 from giuseppe/fix-healthchecksOpenShift Merge Robot2020-04-27
|\ | | | | v2, podman: fix healthchecks
| * podman: handle --no-healthcheckGiuseppe Scrivano2020-04-27
| | | | | | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
| * podman: special case health-cmd noneGiuseppe Scrivano2020-04-27
| | | | | | | | | | | | now we have to pass down this information to libpod Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | spec: propagate --no-hosts to specgenGiuseppe Scrivano2020-04-27
|/ | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* Merge pull request #5971 from giuseppe/fix-userns-testsOpenShift Merge Robot2020-04-24
|\ | | | | v2, podman: fix and enable all run_userns_test.go tests
| * podman: assume user namespace if there are mappingsGiuseppe Scrivano2020-04-24
| | | | | | | | | | | | | | if some mappings are specified, assume there is a private user namespace. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
| * podman: implement userns=keep-idGiuseppe Scrivano2020-04-24
| | | | | | | | | | | | | | add missing implementation for userns=keep-id and enable the user namespaces tests. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | podman: fix --log-opt=path=%sGiuseppe Scrivano2020-04-24
| | | | | | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | podman: fix --http-proxyGiuseppe Scrivano2020-04-24
| | | | | | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | podman: fix podman --group-addGiuseppe Scrivano2020-04-24
| | | | | | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | podman: fix --cgroups=disabledGiuseppe Scrivano2020-04-24
|/ | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* podman: handle namespaces specified on the CLIGiuseppe Scrivano2020-04-23
| | | | | | | and handle differently the user namespace as it supports additional options. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* specgen: do not always set shmsizeGiuseppe Scrivano2020-04-23
| | | | | | if it wasn't overriden on the CLI, leave it undefined. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* Enable basic volumes support in Podmanv2Matthew Heon2020-04-22
| | | | | | | | This enables the --volume, --mount, and --tmpfs flags in Podmanv2. It does not enable init-related flags, image volumes, and --volumes-from. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* Merge pull request #5919 from rhatdan/v2OpenShift Merge Robot2020-04-21
|\ | | | | Lots more fixes for V2 conversion.
| * Handle hostname flag from clientDaniel J Walsh2020-04-21
| | | | | | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
| * Add support for devices from command lineDaniel J Walsh2020-04-21
| | | | | | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
| * Fix handling of CGroupsParent and CGroupsModeDaniel J Walsh2020-04-21
| | | | | | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | Merge pull request #5851 from jwhonce/wip/jsonOpenShift Merge Robot2020-04-21
|\ \ | |/ |/| Provide a json variable pointing to a configured json API
| * Provide a json variable pointing to a configured json APIJhon Honce2020-04-21
| | | | | | | | | | | | | | | | * All commands now using the same instance of json API * `json` variable created in each package to prevent `encoding/json` from being re-introduced Signed-off-by: Jhon Honce <jhonce@redhat.com>
* | Merge pull request #5911 from giuseppe/cgroup-skip-unsetOpenShift Merge Robot2020-04-21
|\ \ | |/ |/| podman: do not set empty cgroup limit blocks
| * podman: do not set empty cgroup limit blocksGiuseppe Scrivano2020-04-21
| | | | | | | | | | | | | | refactor cgroup limits in their own function. If there are no limits set avoid to set the block. Basic rootless containers work now. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | Need to set the EntrypointDaniel J Walsh2020-04-21
|/ | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Merge pull request #5875 from rhatdan/networkOpenShift Merge Robot2020-04-21
|\ | | | | Cleanup network option parsing
| * Cleanup network option parsingDaniel J Walsh2020-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were not handling the parsing of --ip. This pr adds validation checks and now will support the flag. Move validation to the actual parsing of the network flags. We should only parse the dns flags if the user changed them. We don't want to pass default options if set in containers.conf to the server. Potential for duplicating defaults. Add support for --dns-opt flag passing Begin handling of --network flag, although we don't have a way right now to translate a string into a specgen.Namespace. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | Handle Linux Capabilities correctlyDaniel J Walsh2020-04-20
| | | | | | | | | | | | | | | | If user sets capabilities list we need handle minimal capabilities. Also handle seccomp-policy being passed in. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | common: setting cgroup resources correctlyGiuseppe Scrivano2020-04-20
|/ | | | | | fix some cgroups related integration tests. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* We were not handling the user option on createDaniel J Walsh2020-04-17
| | | | | | With this patch we can get run_passwd_test.go to pass Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Podman V2 birthBrent Baude2020-04-16
remote podman v1 and replace with podman v2. Signed-off-by: Brent Baude <bbaude@redhat.com>