Ringkasan eksekutif
Podman merilis v6.2.0-RC1, release candidate yang mengumpulkan banyak fitur kecil tapi berguna di podman push, kube play, Quadlet, dan API, sekaligus puluhan bugfix lintas platform. Yang menarik perhatian saya adalah beberapa sinyal deprecation yang jelas: ini RC yang perlu dibaca, bukan cuma diupgrade begitu saja, karena ada perilaku lama yang akan hilang di Podman 7.0.
Masalah yang diselesaikan
Beberapa hal yang selama ini ganjil di Podman dibenahi di sini. Push image multi-arch selalu mendorong seluruh manifest list, padahal kadang kita cuma mau push satu platform spesifik ke registry yang tidak expect manifest list. kube play juga kurang kontrol: tidak ada cara resmi menolak field YAML yang tidak dikenal, tidak bisa set label custom ke resource yang dibuat, dan kalau Deployment punya replicas lebih dari 1, Podman cuma akan membuat satu pod. Di sisi Quadlet, konfigurasi umask container dan strategi dependency terhadap mount path (RequiresMountsFor vs WantsMountsFor) belum bisa diatur per-unit. Dan secara umum, kompatibilitas API dengan Docker masih punya celah kecil, seperti healthcheck {} yang salah diinterpretasikan, atau endpoint Compat yang belum mengikuti field yang Docker expect.
Fitur utama dan contoh kode
Yang paling langsung kepakai buat saya:
podman push --platform— push satu manifest platform-specific saja, bukan seluruh manifest list.podman kube play --validate(#18332) — mengatur bagaimana field YAML yang tidak dikenal ditangani.podman kube play --label(#26450) — set label ke container/pod/volume/secret yang dibuat dari manifest.podman kube play --multiple-pods(#26769) — bikin banyak pod kalau Deployment minta replicas > 1.podman kube play --buildsekarang bisa build dari subdirectory context (#28148).- Quadlet
.containerpunya key baruUmask(#25278), dan semua Quadlet file punya keySetMountsDependency(#29946) untuk pilihRequiresMountsFor,WantsMountsFor, atau tanpa dependency sama sekali. podman farm list --quiet/--noheading, danpodman artifact ls --format=json/--quiet.podman create --passwd— sekarang paritas denganpodman rununtuk menambah entry ke/etc/passwd.podman events --filter network=(#29387) untuk filter event per network.podman auto-updatesekarang jalan di remote client, plus opsi baru--filteruntuk update container yang match filter tertentu saja.StartIntervaldi healthcheck image sekarang benar-benar dihormati (#27724), jadi startup healthcheck interval dari image metadata ikut dipakai.podman image scp --compression-format/--compression-level(#23192) untuk compress saat transfer image antar host.podman ps --sortsekarang bisa sort by pod, dan--filter status!=(#21398) untuk exclude status tertentu.
Ilustrasi penggunaan kube play dengan label dan multiple pods (contoh pemakaian, bukan dari source):
podman kube play \
--validate=strict \
--label app=myservice \
--multiple-pods \
deployment.yamlDan contoh Quadlet .container dengan Umask serta SetMountsDependency:
[Container]
Image=docker.io/library/nginx:latest
Umask=0027
SetMountsDependency=wantsDampak dan catatan upgrade
Beberapa hal yang wajib dicatat sebelum upgrade:
- Build requirement naik: Podman sekarang butuh Go v1.26 atau lebih baru untuk di-build dari source.
- Seccomp config via annotation di kube play resmi deprecated — gantinya pakai
securityContext.seccompProfiledi YAML Kubernetes. Dukungan annotation lama akan dihapus total di Podman 7.0. --cpu-rt-perioddan--cpu-rt-runtimedicreate/run/update/container clonesekarang disembunyikan dari dokumentasi (sudah tidak fungsional sejak cgroups v1 dihapus) dan akan dihapus sepenuhnya di v7.--health-startup-intervalsekarang punya alias--health-start-interval.- Event driver journald tidak lagi menyertakan timestamp sendiri di log event (#29835), karena journald sudah punya timestamp bawaan — bisa berdampak kalau ada tooling yang parsing timestamp dari field itu.
--image-volume=bindsekarang mengeluarkan warning karena deprecated; default baru yang didokumentasikan adalahanonymous.- Inspect container membawa field baru (
DNSNames,IsInitCtr,InitContainerType, #29811) danAliasessekarang cuma berisi DNS alias yang ditambahkan user (bukan semua alias) — kalau ada script yang bacaAliasesmentah-mentah, perlu dicek ulang. - Di sisi API, ada endpoint baru
POST /libpod/autoupdatedanGET /distribution/{name}/json(#17726), plus fieldHostConfig.Mounts.TmpfsOptions.Optionsdi Compat Create — relevan buat yang integrasi langsung ke REST API daripada lewat CLI.
Karena ini masih RC, saya pribadi akan nunggu bugfix list-nya (lumayan panjang, termasuk soal podman machine di Windows dan --userns=keep-id) settle dulu sebelum pakai di production.
---
Pertama diumumkan di Podman releases. Baca sumber aslinya untuk detail lengkap.