diff options
-rw-r--r-- | .cirrus.yml | 36 | ||||
-rwxr-xr-x | API.md | 66 | ||||
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | changelog.txt | 202 | ||||
-rw-r--r-- | contrib/spec/podman.spec.in | 2 | ||||
-rwxr-xr-x | hack/tree_status.sh | 4 | ||||
-rw-r--r-- | version/version.go | 2 |
7 files changed, 309 insertions, 5 deletions
diff --git a/.cirrus.yml b/.cirrus.yml index 0745b1e7b..514889969 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -176,10 +176,40 @@ vendor_task: failed_master_script: '$CIRRUS_WORKING_DIR/$SCRIPT_BASE/notice_master_failure.sh |& ${TIMESTAMP}' +# This task runs `make varlink_api_generate` followed by ./hack/tree_status.sh to check +# whether the git tree is clean. +varlink_api_task: + + depends_on: + - "gating" + + env: + CIRRUS_WORKING_DIR: "/usr/src/libpod" + # Used by tree_status.sh + SUGGESTION: 'remove API.md, then "make varlink_api_generate" and commit changes.' + + # Runs within Cirrus's "community cluster" + container: + image: "quay.io/libpod/gate:latest" + cpu: 4 + memory: 12 + + timeout_in: 10m + + vendor_script: + - '/usr/local/bin/entrypoint.sh varlink_api_generate' + - 'cd /go/src/github.com/containers/libpod && ./hack/tree_status.sh' + + on_failure: + failed_master_script: '$CIRRUS_WORKING_DIR/$SCRIPT_BASE/notice_master_failure.sh' + + build_each_commit_task: depends_on: - "gating" + - "vendor" + - "varlink_api" # $CIRRUS_BASE_BRANCH is only set when testing a PR only_if: $CIRRUS_BRANCH != 'master' @@ -232,6 +262,8 @@ testing_task: depends_on: - "gating" + - "varlink_api" + - "vendor" - "build_each_commit" gce_instance: @@ -275,6 +307,8 @@ special_testing_task: depends_on: - "gating" + - "varlink_api" + - "vendor" - "build_each_commit" gce_instance: @@ -388,6 +422,8 @@ success_task: depends_on: # ignores any dependent task conditions - "gating" + - "varlink_api" + - "vendor" - "build_each_commit_task" - "testing" - "rootless_testing_task" @@ -45,6 +45,10 @@ in the [API.md](https://github.com/containers/libpod/blob/master/API.md) file in [func ExportImage(name: string, destination: string, compress: bool, tags: []string) string](#ExportImage) +[func GenerateKube(name: string, service: bool) KubePodService](#GenerateKube) + +[func GenerateSystemd(name: string, restart: string, timeout: int, useName: bool) string](#GenerateSystemd) + [func GetAttachSockets(name: string) Sockets](#GetAttachSockets) [func GetContainer(id: string) Container](#GetContainer) @@ -57,6 +61,8 @@ in the [API.md](https://github.com/containers/libpod/blob/master/API.md) file in [func GetContainersByContext(all: bool, latest: bool, args: []string) []string](#GetContainersByContext) +[func GetContainersByStatus(status: []string) Container](#GetContainersByStatus) + [func GetContainersLogs(names: []string, follow: bool, latest: bool, since: string, tail: int, timestamps: bool) LogLine](#GetContainersLogs) [func GetEvents(filter: []string, since: string, until: string) Event](#GetEvents) @@ -73,6 +79,8 @@ in the [API.md](https://github.com/containers/libpod/blob/master/API.md) file in [func GetPodsByContext(all: bool, latest: bool, args: []string) []string](#GetPodsByContext) +[func GetPodsByStatus(statuses: []string) []string](#GetPodsByStatus) + [func GetVersion() string, string, string, string, string, int](#GetVersion) [func GetVolumes(args: []string, all: bool) Volume](#GetVolumes) @@ -87,6 +95,8 @@ in the [API.md](https://github.com/containers/libpod/blob/master/API.md) file in [func ImportImage(source: string, reference: string, message: string, changes: []string, delete: bool) string](#ImportImage) +[func InitContainer(name: string) string](#InitContainer) + [func InspectContainer(name: string) string](#InspectContainer) [func InspectImage(name: string) string](#InspectImage) @@ -153,6 +163,8 @@ in the [API.md](https://github.com/containers/libpod/blob/master/API.md) file in [func TagImage(name: string, tagged: string) string](#TagImage) +[func Top(nameOrID: string, descriptors: []string) []string](#Top) + [func TopPod(pod: string, latest: bool, descriptors: []string) []string](#TopPod) [func UnmountContainer(name: string, force: bool) ](#UnmountContainer) @@ -211,6 +223,8 @@ in the [API.md](https://github.com/containers/libpod/blob/master/API.md) file in [type InfoStore](#InfoStore) +[type KubePodService](#KubePodService) + [type ListPodContainerInfo](#ListPodContainerInfo) [type ListPodData](#ListPodData) @@ -249,6 +263,8 @@ in the [API.md](https://github.com/containers/libpod/blob/master/API.md) file in [error ImageNotFound](#ImageNotFound) +[error InvalidState](#InvalidState) + [error NoContainerRunning](#NoContainerRunning) [error NoContainersInPod](#NoContainersInPod) @@ -445,6 +461,17 @@ a booleon option to force compression. It also takes in a string array of tags tags of the same image to a tarball (each tag should be of the form <image>:<tag>). Upon completion, the ID of the image is returned. If the image cannot be found in local storage, an [ImageNotFound](#ImageNotFound) error will be returned. See also [ImportImage](ImportImage). +### <a name="GenerateKube"></a>func GenerateKube +<div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> + +method GenerateKube(name: [string](https://godoc.org/builtin#string), service: [bool](https://godoc.org/builtin#bool)) [KubePodService](#KubePodService)</div> +GenerateKube generates a Kubernetes v1 Pod description of a Podman container or pod +and its containers. The description is in YAML. See also [ReplayKube](ReplayKube). +### <a name="GenerateSystemd"></a>func GenerateSystemd +<div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> + +method GenerateSystemd(name: [string](https://godoc.org/builtin#string), restart: [string](https://godoc.org/builtin#string), timeout: [int](https://godoc.org/builtin#int), useName: [bool](https://godoc.org/builtin#bool)) [string](https://godoc.org/builtin#string)</div> + ### <a name="GetAttachSockets"></a>func GetAttachSockets <div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> @@ -522,6 +549,11 @@ method GetContainersByContext(all: [bool](https://godoc.org/builtin#bool), lates GetContainersByContext allows you to get a list of container ids depending on all, latest, or a list of container names. The definition of latest container means the latest by creation date. In a multi- user environment, results might differ from what you expect. +### <a name="GetContainersByStatus"></a>func GetContainersByStatus +<div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> + +method GetContainersByStatus(status: [[]string](#[]string)) [Container](#Container)</div> + ### <a name="GetContainersLogs"></a>func GetContainersLogs <div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> @@ -621,6 +653,11 @@ method GetPodsByContext(all: [bool](https://godoc.org/builtin#bool), latest: [bo GetPodsByContext allows you to get a list pod ids depending on all, latest, or a list of pod names. The definition of latest pod means the latest by creation date. In a multi- user environment, results might differ from what you expect. +### <a name="GetPodsByStatus"></a>func GetPodsByStatus +<div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> + +method GetPodsByStatus(statuses: [[]string](#[]string)) [[]string](#[]string)</div> +GetPodsByStatus searches for pods whose status is included in statuses ### <a name="GetVersion"></a>func GetVersion <div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> @@ -669,6 +706,16 @@ the IDs of the removed images are returned. method ImportImage(source: [string](https://godoc.org/builtin#string), reference: [string](https://godoc.org/builtin#string), message: [string](https://godoc.org/builtin#string), changes: [[]string](#[]string), delete: [bool](https://godoc.org/builtin#bool)) [string](https://godoc.org/builtin#string)</div> ImportImage imports an image from a source (like tarball) into local storage. The image can have additional descriptions added to it using the message and changes options. See also [ExportImage](ExportImage). +### <a name="InitContainer"></a>func InitContainer +<div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> + +method InitContainer(name: [string](https://godoc.org/builtin#string)) [string](https://godoc.org/builtin#string)</div> +InitContainer initializes the given container. It accepts a container name or +ID, and will initialize the container matching that ID if possible, and error +if not. Containers can only be initialized when they are in the Created or +Exited states. Initialization prepares a container to be started, but does not +start the container. It is intended to be used to debug a container's state +prior to starting it. ### <a name="InspectContainer"></a>func InspectContainer <div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> @@ -1039,6 +1086,11 @@ $ varlink call -m unix:/run/podman/io.podman/io.podman.StopPod '{"name": "135d71 method TagImage(name: [string](https://godoc.org/builtin#string), tagged: [string](https://godoc.org/builtin#string)) [string](https://godoc.org/builtin#string)</div> TagImage takes the name or ID of an image in local storage as well as the desired tag name. If the image cannot be found, an [ImageNotFound](#ImageNotFound) error will be returned; otherwise, the ID of the image is returned on success. +### <a name="Top"></a>func Top +<div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> + +method Top(nameOrID: [string](https://godoc.org/builtin#string), descriptors: [[]string](#[]string)) [[]string](#[]string)</div> + ### <a name="TopPod"></a>func TopPod <div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> @@ -1445,6 +1497,8 @@ quiet [](#) readonly [](#) +readonlytmpfs [](#) + restart [](#) rm [](#) @@ -1666,6 +1720,13 @@ graph_root [string](https://godoc.org/builtin#string) graph_status [InfoGraphStatus](#InfoGraphStatus) run_root [string](https://godoc.org/builtin#string) +### <a name="KubePodService"></a>type KubePodService + + + +pod [string](https://godoc.org/builtin#string) + +service [string](https://godoc.org/builtin#string) ### <a name="ListPodContainerInfo"></a>type ListPodContainerInfo ListPodContainerInfo is a returned struct for describing containers @@ -1924,6 +1985,9 @@ is includes as part of the error's text. ### <a name="ImageNotFound"></a>type ImageNotFound ImageNotFound means the image could not be found by the provided name or ID in local storage. +### <a name="InvalidState"></a>type InvalidState + +InvalidState indicates that a container or pod was in an improper state for the requested operation ### <a name="NoContainerRunning"></a>type NoContainerRunning NoContainerRunning means none of the containers requested are running in a command that requires a running container. @@ -1933,7 +1997,7 @@ NoContainersInPod means a pod has no containers on which to perform the operatio the pod ID. ### <a name="PodContainerError"></a>type PodContainerError -PodContainerError means a container associated with a pod failed to preform an operation. It contains +PodContainerError means a container associated with a pod failed to perform an operation. It contains a container ID of the container that failed. ### <a name="PodNotFound"></a>type PodNotFound @@ -1,6 +1,6 @@ GO ?= go DESTDIR ?= / -EPOCH_TEST_COMMIT ?= 7b7397481960c85379d8eb1ed21e76da2ce8a4fc +EPOCH_TEST_COMMIT ?= a9fc570dd844bf1ebd1f106f1b8091882b4a2b29 HEAD ?= HEAD CHANGELOG_BASE ?= HEAD~ CHANGELOG_TARGET ?= HEAD diff --git a/changelog.txt b/changelog.txt index 92a17f8d0..c72117d7f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,205 @@ +- Changelog for v1.3.0 (2019-05-06) + * Update release notes for 1.3.0 release + * Bump to Buildah v1.8.2 + * Document events logger options in libpod.conf manpage + * Try and fix restart-policy tests + * fix logout message if login only with docker + * Fix manpage typos + * Small code fix + * Fix 'restart' event in journald + * change from sysregistries to sysregistriesv2 + * Address review comments on restart policy + * Add a test for restart policy + * Add a restart event, and make one during restart policy + * Restart policy should not run if a container is running + * Restart policy conflicts with the --rm flag + * Move to using constants for valid restart policy types + * Add manpage information for restart policy + * Add support for retry count with --restart flag + * Sending signals to containers prevents restart policy + * Add container restart policy to Libpod & Podman + * Add a StoppedByUser field to the DB + * top: fallback to execing ps(1) + * clean up shared/parse/parse.go + * Generate systemd unit files for containers + * Fix podman-in-podman volume test + * Cirrus: Add pipefail confirmation check + * Cirrus: timestamp all output script output + * Update c/storage to v1.12.6 + * Fix typo in init manpage + * Add an InvalidState varlink error for Init + * Bump Buildah to v1.8.1, ImageBuilder to v1.1.0 + * Add variable for global flags to runlabel + * docs: Fix typo "healthcheck" pt2 + * cirrus lib.sh: refactor req_env_var() + * Remove two bits of dead code + * http-proxy: improve docs + * Small fixes for #2950 + * container: drop rootless check + * Add basic structure of podman init command + * Move handling of ReadOnlyTmpfs into new mounts code + * Begin adding volume tests + * Ensure that named volumes have their options parsed + * Add options parsing for tmpfs mounts + * Use EqualValues instead of reflect equality + * Hit a number of to-do comments in unified volumes code + * Fix options for non-bind and non-tmpfs volumes + * Migrate unit tests from cmd/podman into pkg/spec + * Migrate to unified volume handling code + * Always pass pod into MakeContainerConfig + * Remove non-config fields from CreateConfig + * Add a new function for converting a CreateConfig + * podman-remote port + * install.md contains hints for rootless setup on arch linux + * auto pass http_proxy into container + * enable podman-remote on windows + * Use 'sudo tee' in tutorial so install works as non-root + * Refactor container cleanup to use latest functions + * Move --mount in run man page + * Add details on rootless Podman to the readme + * podman-remote stop + * correct upstream vndr issues + * runtime: pass down the context + * system: add new subcommand "migrate" + * Vendor in latest buildah code + * remove manual install of libsystemd-dev + * Vendor in latest containers/storage + * Add --read-only-tmpfs options + * Fix remote-client testing reports + * podman-remote prune containers + * Do not hard fail on non-decodable events + * update psgo to v1.2.1 + * Add System event type and renumber, refresh events + * enable podman remote top + * fix login supports credHelpers config + * Cirrus: Collect audit log on success and failure + * Add a debug message indicating that a refresh occurred + * image: rework parent/child/history matching + * images: add context to GetParent/IsParent/Remove/Prune... + * build podman-remote with Dockerfile. + * point to 3rd party tools for `docker-compose` format + * Update vendor of container/storage + * journald event logging + * podman remote-client restart containers + * Cirrus: Use freshly built images + * Cirrus: Bump up runc commit + * Cirrus: fix obsolete Ubuntu package + * Cirrus: Install libsystemd-dev on Ubuntu + * pull: special case all-tags semantics + * Fix test compile + * Trim whitespace from ps -q before comparing + * Enhance tests for stop to check results + * Add extra CI tests for stopping all containers + * Fix podman stop --all attempting to stop created ctrs + * Cirrus: Temp. override container-selinux on F29 + * Refactor of 'podman prune' to better support remote + * bats - various small updates + * podman-remote pause|unpause + * Internal names do not match external names + * Add header to play kube output + * Clean up after play kube failure + * rootless: not close more FDs than needed + * Fix COPR builds to start working again + * Fix podman command --change CMD + * podman-remote start + * Vendor in latest Buildah + * Added remote pod prune + * Add podman pod prune + * podman-remote container commands + * Fix segfaults attribute to missing options + * Call the runtime with WithRenumber() when asked + * Add File mounts to play kube + * cmd, pkg: drop commented code + * pod: drop dead code + * rootless, mount: not create namespace + * Incorporate image and default environment variables in play kube + * Validate ENV/LABEL Change options in varlink + * oci: fix umount of /sys/kernel + * Revert "rootless: set controlling terminal for podman in the userns" + * Remove old crio reference from man pages + * create: fix segfault if container name already exists + * adding uidmap to install steps for ubuntu + * podman-remote generate kube + * rootless: do not block SIGTSTP + * rootless: set controlling terminal for podman in the userns + * Use GetContainer instead of LookupContainer for full ID + * pull: exit with error if the image is not found + * Use the same SELinux label for CRIU log files + * pull: remove cryptic error message + * new uidmap BATS test: fix + * adding additional update, needed for install + * Fix README.md -> rootless.md link + * Fixes for podman-remote run and attach + * remote-client checkpoint/restore + * Expand debugging for container cleanup errors + * spec: mask /sys/kernel when bind mounting /sys + * Add --include-volumes flag to 'podman commit' + * oci: add /sys/kernel to the masked paths + * userns: prevent /sys/kernel/* paths in the container + * imagefilter dangling handling corrected + * rootless: fix segfault on refresh if there are containers + * Add demo script and cast to images + * Initial remote flag clean up + * (minor): fix misspelled 'Healthcheck' + * BATS tests: start supporting podman-remote + * Add the ability to attach remotely to a container + * Print header for 'podman images' even with no images + * podman-remote ps + * Re-run (make vendor) to drop the now unnecessary collation code and tables + * Potentially breaking: Make hooks sort order locale-independent + * Implement podman-remote rm + * ps: now works with --size and nonroot + * Update invalid name errors to report the correct regex + * cirrus: enable remote tests for rootless + * test: fix remote tests for rootless + * test: enable userns e2e tests for rootless + * CI check for --help vs man pages: usability fix + * podman-remote create|run + * Correct varlink pull panic + * add image rmi event + * Revert "Switch to golangci-lint" + * Document shortcomings with rootless podman + * podman: enable kube for rootless + * kube: correctly set the default for MemorySwappiness + * rootless: enable healthcheck tests + * Respect image entrypoint in play kube + * Increase CI resources to help avoid hitting timeouts + * podman-remote image tree + * Added port forwarding and IP address hint. + * fix bug podman cp directory + * Fix E2E tests + * Drop LocalVolumes from our the database + * Major rework of --volumes-from flag + * Volume force-remove now removed dependent containers + * Add handling for new named volumes code in pkg/spec + * Create non-existing named volumes at container create + * Switch Libpod over to new explicit named volumes + * Add named volumes for each container to database + * Add varcheck linter + * Add deadcode linter + * Update lint to use golangci-lint + * Update registrar unit tests to match them of cri-o + * Update run tests to be skipped when not supported + * Fix Dockerfile dependencies for packer tests + * Update Dockerfile to use golang:1.12 image + * Fix a potential segfault in podman search + * Improve podman pod rm -a test + * Cirrus: Update F28 -> F29 container image + * --size does not work with rootless at present + * add remote-client diff + * Cirrus: Support special-case modes of testing + * rootless: use a single user namespace + * rootless: remove SkipStorageSetup() + * Update cri-o annotations + * Update README with current version + * docs/podman*.md: fix numerous option typos and spacing errors + * docs/podman-rm.1.md: delete "Not yet implemented" msg for volume removal + * docs/podman-inspect.1.md: add missing option hyphen for "-t" + * Bump gitvalidation epoch + * Bump to v1.3.0-dev + * Fix location of libpod.conf + * Capitalize global options help information + - Changelog for v1.2.0 (2019-03-30) * Update release notes for v1.2.0 * Remove wait event diff --git a/contrib/spec/podman.spec.in b/contrib/spec/podman.spec.in index f3ee01bca..d69b673e0 100644 --- a/contrib/spec/podman.spec.in +++ b/contrib/spec/podman.spec.in @@ -39,7 +39,7 @@ %global shortcommit_conmon %(c=%{commit_conmon}; echo ${c:0:7}) Name: podman -Version: 1.3.0 +Version: 1.3.1 Release: #COMMITDATE#.git%{shortcommit0}%{?dist} Summary: Manage Pods, Containers and Container Images License: ASL 2.0 diff --git a/hack/tree_status.sh b/hack/tree_status.sh index 78fb4c6a3..ac874a347 100755 --- a/hack/tree_status.sh +++ b/hack/tree_status.sh @@ -1,12 +1,14 @@ #!/bin/bash set -e +SUGGESTION="${SUGGESTION:-sync the vendor.conf and commit all changes.}" + STATUS=$(git status --porcelain) if [[ -z $STATUS ]] then echo "tree is clean" else - echo "tree is dirty, please commit all changes and sync the vendor.conf" + echo "tree is dirty, please $SUGGESTION" echo "" echo "$STATUS" exit 1 diff --git a/version/version.go b/version/version.go index 29a576317..c63f8b820 100644 --- a/version/version.go +++ b/version/version.go @@ -4,7 +4,7 @@ package version // NOTE: remember to bump the version at the top // of the top-level README.md file when this is // bumped. -const Version = "1.3.0-dev" +const Version = "1.3.1-dev" // RemoteAPIVersion is the version for the remote // client API. It is used to determine compatibility |