🦭

Podman v4.3.0 リリースノート

2022/12/31に公開

Podman v4.3.0がアップストリームでリリースされました。

https://github.com/containers/podman/releases/tag/v4.3.0

リリースノートを日本語に翻訳したものを公開します。どんな内容があるのか把握するのにお役立てください。

以下、リリースノート日本語翻訳


4.3.0

機能

  • 新しいコマンド podman generate spec が追加され、Podman REST API でコンテナを作成するために使用できる、指定したコンテナに基づいた JSON 構造体が作成されます。
  • 新しいコマンド podman update が追加され、既存のコンテナのリソース制限を変更できるようになりました。このコマンドは既存のコンテナのリソース制限を変更します。この変更はコンテナを再起動しても保持されないことに注意してください (#15067)。
  • 新しいコマンド、podman kube down が追加され、与えられた Kubernetes YAML で作成された Pod とコンテナを削除します (機能は podman kube play --down と同じですが、独自のコマンドになりました)。
  • podman kube play コマンドは、Podman の secrets バックエンドを使った Kubernetes secrets をサポートするようになりました。
  • podman kube play コマンドで作成した Systemd-managed pods は、io.containers.sdnotify アノテーション(特定のコンテナの場合は io.containers.sdnotify/$name )を使って sd-notify と統合できるようになりました。
  • podman kube play で作成した Systemd-managed pods は、io.containers.auto-update アノテーション (特定のコンテナでは io.containers.auto-update/$name) によって自動更新されるようになった。
  • podman kube play コマンドは URL から YAML を読み込めるようになりました。例: podman kube play https://example.com/demo.yml (#14955).
  • podman kube play コマンドが emptyDir ボリュームタイプをサポートしました (#13309)。
  • podman kube play コマンドは、Pod spec の HostUsers フィールドをサポートするようになりました。
  • podman play kube コマンドは、ConfigMaps の binaryData をサポートするようになりました。
  • podman pod create コマンドは、新しいオプション --memory-swap, --cpuset-mems, --device-read-bps, --device-write-bps, --blkio-weight, --blkio-weight-device, そして --cpu-shares によって追加のリソース制限を設定できるようになった。
  • podman machine init コマンドは新しいオプション --username をサポートし、非 root ユーザーとして VM に接続するために使用するユーザー名を設定できるようになりました (#15402)。
  • podman volume create コマンドの -o timeout= オプションで、ボリュームプラグインの操作がタイムアウトしないことを示す、0 のタイムアウトを設定できるようになりました。
  • 新しいボリュームドライバ image のサポートが追加されました。
  • podman runpodman create コマンドは新しいオプション --env-merge をサポートし、環境変数をイメージ内の他の環境変数と相対的に指定できるようになりました (例: podman run --env-merge "PATH=$PATH:/my/app" ...) (#15288).
  • podman runpodman create コマンドは新しいオプション --on-failure をサポートし、コンテナのヘルスチェックに失敗した時に実行するアクションを指定できるようになりました。none (何もしない、デフォルト)、 kill (コンテナを kill) 、 restart (コンテナを再起動)、 stop (コンテナを停止) です。
  • podman createpodman run--keep-id オプションに新しいオプション、 uidgid が加わりました。これはコンテナ内のユーザーの UID と GID を設定して、Podman を実行しているユーザーにマップします (例えば --userns=keep-id:uid=11 はコンテナ内の UID 11 に Podman を実行しているユーザーをマップします) (#15294).
  • podman generate systemd コマンドは新しいオプション --env/-e をサポートし、生成されるユニットファイルに環境変数を設定できるようになりました (#15523)。
  • podman pausepodman unpause コマンドは --latest, --cidfile, --filter オプションをサポートするようになりました。
  • podman restart コマンドは --cidfile--filter オプションをサポートするようになりました。
  • podman rm コマンドは --filter オプションをサポートし、どのコンテナを削除するかを選択できるようになりました。
  • podman rmi コマンドは新しいオプション --no-prune をサポートし、削除されたイメージのぶら下がった親を削除しないようにできるようになりました。
  • podman create, podman run, podman pod create--dns-opt オプションは新しいエイリアス、 --dns-option を受け取り、Docker との互換性を改善しました。
  • podman コマンドに新しいグローバルフラグ --debug/-D が追加され、デバッグレベルのロギング (--log-level=debug と同じ) が可能になり、Docker との親和性が向上しました。
  • podman コマンドに新しいグローバルフラグ、 --config が追加されました。このフラグは無視され、Docker との互換性のためにのみ含まれます (#14767)。
  • podman manifest create コマンドに、新しいオプション --amend/-a が追加されました。
  • podman manifest create, podman manifest add, podman manifest push コマンドは新しいオプション --insecure (--tls-verify=false と同じ) を受け付けるようになり、Docker との親和性が向上しました。
  • podman secret create コマンドの --driver--format オプションに新しいエイリアス、 --driver には -d が、 --format には -f が追加されました。
  • podman secret create コマンドは新しいオプション --label/-l をサポートし、作成された secret にラベルを追加できるようになりました。
  • podman secret ls コマンドは --quiet/-q オプションを受け付けるようになりました。
  • podman secret inspect コマンドは新しいオプション、 --pretty を受け付けるようになり、人間が読めるフォーマットで出力を行います。
  • podman stats コマンドは --no-trunc オプションを受け付けるようになりました。
  • podman save コマンドは --signature-policy オプションを受け付けるようになりました (#15869)。
  • podman pod inspect コマンドは複数の引数を渡すことができるようになりました。その場合、検査したポッドの JSON 配列を返します (#15674)。
  • Docker との互換性を高めるために、既存の podman system connection コマンドのエイリアスとして、一連の新しい隠しコマンドが podman context の下に追加されました。
  • リモート Podman クライアントは、--sig-proxy オプションを設定すると、アタッチセッションのシグナルのプロキシをサポートするようになりました (#14707).

変更点

  • podman run, podman create, podman pod create-v オプションで、ソース、宛先、オプションが全て一致する限り、ボリュームの重複マウントが可能になりました (#4217).
  • podman generate kubepodman play kube コマンドは、Kubernetes 関連のコマンドをまとめるために podman kube generatepodman kube play に名称が変更されました。古いコマンド名がまだ機能するようにエイリアスが追加されました。
  • Podman コマンドの多く (podman init, podman container checkpoint, podman container restore, podman container cleanup) は、成功時にコンテナ ID ではなく、ユーザーが入力したコンテナ名を表示するようになった。
  • cgroups v1 システム上のルートレスコンテナにサポートされていないオプション(リソース制限など)が指定された場合、制限に従わないという警告メッセージが表示されるようになりました。
  • Windows Podman クライアントのインストーラが改善されました。
  • podman runpodman create--cpu-rt-period--cpu-rt-runtime オプションは cgroups v2 システムでは警告を表示して無視するようになりました (cgroups v2 はこれらのコントローラーをサポートしなくなりました) (#15666).
  • systemd が動作する特権コンテナは、もはや /dev/tty 以外のデバイスをコンテナにマウントしません (#15878)。
  • Pod の一部であるコンテナに対するイベントは、イベントに Pod の ID を含むようになりました。
  • podman machine コマンドの SSH 機能は徹底的に作り直され、認証に関する多くの問題に対処しています。
  • podman kube play--network オプションは、YAML が要求していなくても、host を渡してポッドがホストネットワークを使用するように設定できるようになりました。
  • コンテナに対する podman inspect コマンドは、コンテナの作成に使用されたイメージのダイジェストを含むようになりました。
  • podman play kube で作成されたポッドは、デフォルトで podman-kube という名前のネットワークに配置されるようになりました。podman-kube ネットワークが存在しない場合は、作成されます。このネットワークでは DNS が有効になっているので、ポッド同士が名前で接続できるようになります。

バグフィックス

  • podman network prunepodman container prune コマンドが --filter label!= オプションを適切にサポートしていなかったバグを修正しました (#14182)。

  • podman kube generate コマンドが、生成される YAML に不要な Secret: null 行を追加するバグを修正しました (#15156).

  • podman kube generate コマンドが、生成される YAML で enableServiceLinksautomountServiceAccountToken を false に設定しないバグを修正しました (#15478 および #15243) 。

  • podman kube play コマンドが CPU 制限を適切に扱えないバグを修正しました (#15726)。

  • podman kube play コマンドが liveness probes のデフォルト値を尊重しないバグを修正しました (#15855).

  • podman kube play コマンドが、hostPort を指定せずに containerPort を指定した場合、ポートをバインドしないバグを修正しました (#15942)

  • podman kube play コマンドが hostPath ボリュームに対してホスト上にディレクトリを作成しないことがあるバグを修正しました。

  • リモート Podman クライアントの podman manifest push コマンドが進捗を表示しないバグを修正しました。

  • podman image inspect--filter "{{.Config.Healthcheck}}" オプションが、イメージの設定されたヘルスチェックを表示しないバグを修正しました (#14661).

  • ボリュームプラグインが使われていない時に、podman volume create -o timeout= オプションが指定できるバグを修正しました。
    -podman rmi コマンドがタグ付き画像を削除する際に untag イベントを発生させないバグを修正しました (#15485).

  • Windows 上で podman machine VM を使った API 転送が、パイプの作成が間に合わず失敗することがあるバグを修正しました (#14811).

  • ポッド内のコンテナの削除がリブートによって中断された場合、podman pod rm コマンドがエラーになることがあるバグを修正しました。

  • コンテナの exitedexec died イベントがコンテナのラベルを含んでいないバグを修正しました (#15617)。

  • Systemd を PID 1 として使用していないシステム上で Systemd コンテナを実行すると失敗することがあるバグを修正しました (#15647)。

  • Podman がコンテナ起動時に必要な環境変数($PATHを含む)を全て Conmon に渡さないというバグを修正しました (#15707).

  • イベントが存在しない場合に podman events コマンドが正しく動作しないことがあるバグを修正しました (#15688)。

  • 様々な Podman コマンドの --format フラグが、改行を含むテンプレート文字列 (n) を適切に扱わないというバグを修正しました (#13446)。

  • Systemd で管理されたポッドで、1つのコンテナが終了するとポッド内の全てのコンテナが kill されるバグを修正しました (#14546)。

  • podman generate systemd コマンドが、--name オプションを付けずに作成したポッドに対して不正な YAML を生成していたバグを修正しました。

  • podman generate systemd --new コマンドが stop timeout を適切に設定しないバグを修正しました (#16149)。

  • コンテナの起動中にシステムが再起動したために OCI spec が壊れ、podman inspect コマンドが再起動するまでコンテナを検査することができないバグを修正しました。

  • オーバーレイボリューム上に作業ディレクトリを持つコンテナを作成すると、コンテナが起動できなくなるバグを修正しました (#15789)。

  • 実行中のコンテナを含むポッドを --force なしで削除しようとするとエラーにならず、ポッドと残りのコンテナが使用できない状態になるというバグを修正しました (#15526)。

  • podman stats が報告するメモリ制限がシステムで利用可能な最大メモリを超えることがあるバグを修正しました (#15765)。

  • podman container clone コマンドが = 文字を含む環境変数を適切に扱えないというバグを修正しました (#15836)

  • podman-remote run --attach stdin コマンドを実行したときに、リモートの Podman クライアントがコンテナ ID を表示しないバグを修正しました。

  • podman machine list --format json コマンドがマシンの起動状態を適切に表示しないバグを修正しました。

  • 完全修飾されていないイメージ名を持つコンテナを更新しようとすると、自動更新がエラーにならないバグを修正しました (#15879)。

  • podman pod logs --latest コマンドがパニックになるバグを修正しました (#15556)。

  • ネットワークのクリーンアップに失敗した場合、Podman がネットワークネームスペースのマウントをシステム上に残すことがあるバグを修正しました。

  • サポートされていない URI スキームを podman system service の待ち受けに指定すると、パニックになるバグを修正しました。

  • podman kill コマンドがコンテナを終了状態に移行しないことがあるバグを修正しました (#16142)。

Discussion