-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update kpod inspect to use the new container state #106
Conversation
@rhatdan @mheon @baude PTAL. |
libpod/container.go
Outdated
@@ -131,6 +132,8 @@ type ContainerConfig struct { | |||
SharedNamespaceMap map[string]string `json:"sharedNamespaces"` | |||
// Time container was created | |||
CreatedTime time.Time `json:"createdTime"` | |||
Volumes []string `json:"volumes"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you parse this from the OCI runtime spec's Mounts field?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed Volumes. fixed
libpod/container.go
Outdated
// A container FS is split into two parts. The first is the top layer, a | ||
// mutable layer, and the rest is the RootFS: the set of immutable layers | ||
// that make up the image on which the container is based | ||
func (c *Container) RootFsSize() (int64, error) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to use this outside of libpod? I think we should make this private, and let people get it via the inspect API
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
libpod/container.go
Outdated
} | ||
|
||
// RwSize Gets the size of the mutable top layer of the container | ||
func (c *Container) RwSize() (int64, error) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as above - if possible, make private and allow access via stats API.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or inspect API. Oops.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
libpod/container_inspect.go
Outdated
pidsLimit := getPidsInfo(spec) | ||
|
||
args := config.Spec.Process.Args | ||
path := args[0] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't do any validation on the spec, so someone could feed us a bad spec with args having 0 length. Can you do a check for that here, to make sure we don't segfault trying to read an empty array?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
libpod/container_inspect.go
Outdated
}, | ||
ImageID: config.RootfsImageID, | ||
ImageName: config.RootfsImageName, | ||
ResolvConfPath: runtimeInfo.ConfigPath, // not sure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't get this yet, coming in networking patch - leave as "" for now
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for the "" that are pending, can you add a TODO comment or perhaps PENDING.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
libpod/container_inspect.go
Outdated
"github.com/sirupsen/logrus" | ||
) | ||
|
||
func getContainerData(ctr *Container, size bool, driverData *driver.Data) (*ContainerData, error) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you make this func (ctr *Container) getContainerData(...) for consistency with the rest of our container functions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
libpod/container_inspect.go
Outdated
Cmd: config.Spec.Process.Args, | ||
}, | ||
NetworkSettings: &NetworkSettings{ | ||
SandboxID: config.Pod, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Leave this blank for now, pods aren't really working yet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
libpod/container_inspect.go
Outdated
AppArmorProfile: spec.Process.ApparmorProfile, | ||
ExecIDs: "", //can't get yet | ||
HostConfig: &HostConfig{ | ||
Binds: config.Volumes, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I really don't like storing this in Container. It doesn't directly affect any other part of the container, because the mounts are already in the spec. If possible, we should parse them out of the spec. Otherwise, we should either throw them in a label, or do something similar to the Artifacts functions we discussed on IRC.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thinking about it more, we can't tell what the default mounts are, so even if it's not completely compliant with the Docker CLI we should just output all mounts in the spec.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we already include the mounts (I see them below), I would probably just remove this and the container.config.Volumes field. From a libpod standpoint we don't know what is a user-created bind mount and what isn't - we just know about the mounts in the spec.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed volumes and binds. fixed
libpod/image_inspect.go
Outdated
Architecture: ociv1Img.Architecture, | ||
Os: ociv1Img.OS, | ||
Config: &ociv1Img.Config, | ||
DockerVersion: info.DockerVersion, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should rename this, exact compatability be damned. @rhatdan agree?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree. We don't need to be outputing things that say Docker
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rename it to what? OCIVersion?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Personally I'd just drop the 'Docker' part and leave it as Version:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but it should still get its data from info.DockerVersion?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd rename that too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Version works for me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
libpod/inspect_data.go
Outdated
MountLabel string `json:"MountLabel"` | ||
ProcessLabel string `json:"ProcessLabel"` | ||
AppArmorProfile string `json:"AppArmorProfile"` | ||
ExecIDs string `json:"ExecIDs"` // don't know type yet, not implemented |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will be a []string
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
libpod/inspect_data.go
Outdated
Config map[string]string `json:"Config"` //idk type, not implemented | ||
} | ||
|
||
// RestarPolicy holds the container's policy on restart |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We aren't going to handle restart policy, so this can be removed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed
libpod/inspect_data.go
Outdated
|
||
// HostConfig represents the host configuration for the container | ||
type HostConfig struct { | ||
Binds []string `json:"Binds"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Strongly in favor of dropping this or leaving it empty always, makes no sense in a libpod context
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed
libpod/inspect_data.go
Outdated
// HostConfig represents the host configuration for the container | ||
type HostConfig struct { | ||
Binds []string `json:"Binds"` | ||
ContainerIDFile string `json:"ContainerIDFile"` //not implemented |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we do create this in kpod run - we can store it as an annotation and unmarshal it into here?
libpod/inspect_data.go
Outdated
Binds []string `json:"Binds"` | ||
ContainerIDFile string `json:"ContainerIDFile"` //not implemented | ||
LogConfig *LogConfig `json:"LogConfig"` //not implemented | ||
NetworkMode string `json:"NetworkMode"` //not implemented |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can probably be parsed out of the namespaces info in the OCI spec
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sort of fixed. Will need to move to cmd/kpod if decide to break the inspect struct
libpod/inspect_data.go
Outdated
NetworkMode string `json:"NetworkMode"` //not implemented | ||
PortBindings map[string]struct{} `json:"PortBindings"` //not implemented | ||
RestartPolicy *RestartPolicy `json:"RestartPolicy"` //not implemented | ||
AutoRemove bool `json:"AutoRemove"` //not implemented |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is handled in kpod run as --rm - again, we can probably add an annotation for it and check for it
libpod/inspect_data.go
Outdated
AutoRemove bool `json:"AutoRemove"` //not implemented | ||
VolumeDriver string `json:"VolumeDriver"` //not implemented | ||
VolumesFrom string `json:"VolumesFrom"` // dont know type, not implemented | ||
CapAdd string `json:"CapAdd"` //dont know type, not implemented |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Implemented in kpod run as --cap-add and --cap-drop. Given the amount of stuff we need from kpod run, maybe we do need to store artifacts - maybe not the entire create config, but certainly a subset of it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, if libpod can't get these (CapAdd, CapDrop make no sense inside libpod), I would be in favor of removing them from the structs libpod returns (and maybe adding them back in in cmd/kpod?)
libpod/inspect_data.go
Outdated
Dns []string `json:"Dns"` //not implemented | ||
DnsOptions []string `json:"DnsOptions"` //not implemented | ||
DnsSearch []string `json:"DnsSearch"` //not implemented | ||
ExtraHosts string `json:"ExtraHosts"` //dont know type, not implemented |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably a []string
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
libpod/inspect_data.go
Outdated
DnsOptions []string `json:"DnsOptions"` //not implemented | ||
DnsSearch []string `json:"DnsSearch"` //not implemented | ||
ExtraHosts string `json:"ExtraHosts"` //dont know type, not implemented | ||
GroupAdd string `json:"GroupAdd"` //not implemented |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AdditionalGIDs in the spec
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
libpod/inspect_data.go
Outdated
DnsSearch []string `json:"DnsSearch"` //not implemented | ||
ExtraHosts string `json:"ExtraHosts"` //dont know type, not implemented | ||
GroupAdd string `json:"GroupAdd"` //not implemented | ||
IpcMode string `json:"IpcMode"` //not implemented |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can probably be parsed out of the spec's namespaces info
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
libpod/inspect_data.go
Outdated
Links string `json:"Links"` // dont know type, not implemented | ||
OomScoreAdj *int `json:"OomScoreAdj"` | ||
PidMode string `json:"PidMode"` //not implemented | ||
Priveleged bool `json:"Priveleged"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo, Privileged
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
I think we need to have separate ContainerInfo structs in libpod and cmd/kpod. There's a lot of stuff in the existing docker-based structs that makes no sense in libpod and will clutter the struct for people trying to use the API. The cmd/kpod structs can include the missing information, which we can store as labels or container artifacts |
docs/kpod-inspect.1.md
Outdated
"WorkingDir": "/data" | ||
} | ||
``` | ||
# kpod inspect umohnani/get-started:part1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you may want to consider changing the 'umohani' to something generic like 'myusername' or some such.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
or perhaps doing redis:alpine again, an image people would be able to easily play with on their system.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wanted to use an image that had a bunch of things configured like ports and all, but using fedora now. fixed
libpod/container.go
Outdated
// RootFsSize gets the size of the container's root filesystem | ||
// A container FS is split into two parts. The first is the top layer, a | ||
// mutable layer, and the rest is the RootFS: the set of immutable layers | ||
// that make up the image on which the container is based |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit of a nit, missing period at end of line. Actually it looks like you did this through out. I'd suggest adding a period to all. That way people reading it a year from now won't wonder if you forgot to make a point or not.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
libpod/image_inspect.go
Outdated
|
||
ociv1Img, err := imgRef.OCIConfig() | ||
if err != nil { | ||
return nil, errors.Wrapf(err, "error gettin oci image info %q", img.ID) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
gettin to getting
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
@rhatdan I think we need to restructure this so we have different inspect structs coming out of libpod and 'kpod inspect' - libpod doesn't know about a lot of things that should be in the kpod inspect struct (what mounts were user specified volume mounts, what namespaces were specified as host or another container, etc). CRI-O and other libpod API users won't know or care about these because they don't have a kpod CLI. We should output only the things libpod knows about from libpod, and then we can save the kpod metadata separately and use that for kpod inspect |
e4fc1f4
to
2134ff7
Compare
Made changes based on reviews. Will make further changes based on @rhatdan response to having inspect be broken in two, 1 for kpod and the other for the libpod api. |
@mheon I agree. I think kpod create/run should save this information on their own, and leave to libpod stuff that it knows about. Therefore cri-o inspect would return less information then kpod run/kpod inspect. |
@rhatdan I talked with @umohnani8 and we agreed on an interface for storing metadata. We'll need such a thing for CRI-O anyways, so we'll build it now and use it to store information from kpod run (CLI arguments) so we can reconstruct the rest of what we need. |
rebased |
758d8c4
to
3800f14
Compare
cmd/kpod/create_cli.go
Outdated
if config.resources.memory != 0 && config.resources.memory < linuxMinMemory { | ||
return warnings, fmt.Errorf("minimum memory limit allowed is 4MB") | ||
if config.Resources.Memory != 0 && config.Resources.Memory < linuxMinMemory { | ||
return warnings, fmt.Errorf("minimum Memory limit allowed is 4MB") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Memory should not be capitalized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
cmd/kpod/create_cli.go
Outdated
config.resources.memory = 0 | ||
config.resources.memorySwap = -1 | ||
if config.Resources.Memory > 0 && !sysInfo.MemoryLimit { | ||
warnings = addWarning(warnings, "Your kernel does not support Memory limit capabilities or the cgroup is not mounted. Limitation discarded.") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Memory should not be capitalized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
cmd/kpod/create_cli.go
Outdated
if config.resources.memory > 0 && config.resources.memorySwap > 0 && config.resources.memorySwap < config.resources.memory { | ||
return warnings, fmt.Errorf("minimum memoryswap limit should be larger than memory limit, see usage") | ||
if config.Resources.Memory > 0 && config.Resources.MemorySwap > 0 && config.Resources.MemorySwap < config.Resources.Memory { | ||
return warnings, fmt.Errorf("minimum Memoryswap limit should be larger than Memory limit, see usage") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Memory should not be capitalized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
cmd/kpod/create_cli.go
Outdated
if swappiness < -1 || swappiness > 100 { | ||
return warnings, fmt.Errorf("invalid value: %v, valid memory swappiness range is 0-100", swappiness) | ||
return warnings, fmt.Errorf("invalid value: %v, valid Memory swappiness range is 0-100", swappiness) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Memory should not be capitalized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
cmd/kpod/create_cli.go
Outdated
warnings = addWarning(warnings, "Your kernel does not support memory soft limit capabilities or the cgroup is not mounted. Limitation discarded.") | ||
config.resources.memoryReservation = 0 | ||
if config.Resources.MemoryReservation > 0 && !sysInfo.MemoryReservation { | ||
warnings = addWarning(warnings, "Your kernel does not support Memory soft limit capabilities or the cgroup is not mounted. Limitation discarded.") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Memory should not be capitalized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
cmd/kpod/create_cli.go
Outdated
if config.resources.memoryReservation > 0 && config.resources.memoryReservation < linuxMinMemory { | ||
return warnings, fmt.Errorf("minimum memory reservation allowed is 4MB") | ||
if config.Resources.MemoryReservation > 0 && config.Resources.MemoryReservation < linuxMinMemory { | ||
return warnings, fmt.Errorf("minimum Memory reservation allowed is 4MB") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Memory should not be capitalized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clean up all error messages to not capitalize Memory.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
cmd/kpod/inspect.go
Outdated
if err != nil { | ||
return errors.Wrapf(err, "error parsing container data") | ||
return errors.Wrapf(err, "error parsing conainer data %q", ctr.ID()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
container is misspelled
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
data, err = getCtrInspectInfo(ctr, libpodInspectData) | ||
if err != nil { | ||
return errors.Wrapf(err, "error parsing container data %q", ctr.ID) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this work when checking buildah containers? Images? CRI-O Containers? Images?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Won't work with buildah containers, but buildah images and CRI-O containers/images should all be possible
cmd/kpod/inspect.go
Outdated
NetworkMode string `json:"NetworkMode"` | ||
PortBindings map[string]struct{} `json:"PortBindings"` //TODO | ||
AutoRemove bool `json:"AutoRemove"` | ||
VolumeDriver string `json:"VolumeDriver"` //TODO |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No support, remove this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
cmd/kpod/inspect.go
Outdated
PortBindings map[string]struct{} `json:"PortBindings"` //TODO | ||
AutoRemove bool `json:"AutoRemove"` | ||
VolumeDriver string `json:"VolumeDriver"` //TODO | ||
VolumesFrom []string `json:"VolumesFrom"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No support, I believe.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is a flag option though for create and run.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok lets remove it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
cmd/kpod/inspect.go
Outdated
GroupAdd []uint32 `json:"GroupAdd"` | ||
IpcMode string `json:"IpcMode"` | ||
Cgroup string `json:"Cgroup"` | ||
Links string `json:"Links"` // dont know type, TODO |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No support remove.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
7177525
to
3a530f0
Compare
@rhatdan is this good to merge just so we have a working inspect? |
@umohnani8 we need to continue working on this and move some of this config into libpod so we can handle data from the containers image. But for now this LGTM. |
@rhatdan yup will get back to it once we figure out how to get all the data together. |
☔ The latest upstream changes (presumably 88121e0) made this pull request unmergeable. Please resolve the merge conflicts. |
kpod inspect now uses the new libpod container state and closely matches the output of docker inspect some aspects of it are still WIP as the libpod container state is still being worked on Signed-off-by: umohnani8 <umohnani@redhat.com>
3a530f0
to
74ee579
Compare
LGTM In the future we'll need to work out a better way to inspect CRI-O containers that don't have inspect artifacts, though we are also discussing API changes that will put all the relevant data in libpod so every container will have it. |
That can wait until later, though, as we don't have a major libpod consumer except kpod now |
📌 Commit 74ee579 has been approved by |
kpod inspect now uses the new libpod container state and closely matches the output of docker inspect some aspects of it are still WIP as the libpod container state is still being worked on Signed-off-by: umohnani8 <umohnani@redhat.com> Closes: #106 Approved by: mheon
💔 Test failed - status-papr |
Looks like a flake |
kpod inspect now uses the new libpod container state and closely matches the output of docker inspect some aspects of it are still WIP as the libpod container state is still being worked on Signed-off-by: umohnani8 <umohnani@redhat.com> Closes: #106 Approved by: mheon
💔 Test failed - status-papr |
Seeing a lot of what look like SELinux related flakes in papr |
I think it should be fine as tests are green. LGTM. Merging. |
kpod inspect now uses the new libpod container state
and closely matches the output of docker inspect
some aspects of it are still WIP as the libpod container state
is still being worked on
Signed-off-by: umohnani8 umohnani@redhat.com