containers / containers/podlet

generate quadlet from pod missing field `CreateCommand`

Open
#134 4 comments 4 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
1.6k
Forks
48
Avg merge
1d 9h
Merged PRs (30d)
1

Description

## Description

I was trying to generate a pod Quadlet from an existing pod, the pod has been created through `podman kube play --build play.yaml`

## Reproduce

1. create `play.yaml`

```
apiVersion: v1
kind: Pod
metadata:
name: demo-build-remote
spec:
containers:
- name: container
image: foobar
ports:
- name: http
containerPort: 80
```

2. create `foobar/Containerfile`

```
FROM docker.io/library/nginx:alpine

EXPOSE 80
LABEL "quadlet"="demo-kube"
```

3. run `podman kube play --build play.yaml`
4. assert pod running (using podman-desktop)

![Image](https://github.com/user-attachments/assets/a824e531-56fd-4fec-be8a-1822baead8b7)

5. run `podlet generate pod `
6. assert error raised

## Logs

I cloned and build the main branch (https://github.com/containers/podlet/commit/7f2c9c4b012dece5fa00be2aba13b8556d579c79)

```
./target/debug/podlet generate pod --ignore-pod-id-file --ignore-infra-conmon-pidfile 78158d791d85bde4f3dc94aeb5451706a096f617c4256d8957ecf3dd81cb8526
Error:
0: error creating Quadlet file(s) from an existing object
1: error inspecting pod `78158d791d85bde4f3dc94aeb5451706a096f617c4256d8957ecf3dd81cb8526`
2: error deserializing from `podman pod inspect 78158d791d85bde4f3dc94aeb5451706a096f617c4256d8957ecf3dd81cb8526` output
3: missing field `CreateCommand` at line 53 column 6

Location:
src/cli/generate.rs:821

Podman Stdout:
[
{
"Id": "78158d791d85bde4f3dc94aeb5451706a096f617c4256d8957ecf3dd81cb8526",
"Name": "demo-build-remote",
"Created": "2024-12-05T15:44:26.800799303+01:00",
"ExitPolicy": "stop",
"State": "Running",
"Hostname": "demo-build-remote",
"CreateCgroup": true,
"CgroupParent": "user.slice",
"CgroupPath": "user.slice/user-1000.slice/user@1000.service/user.slice/user-libpod_pod_78158d791d85bde4f3dc94aeb5451706a096f617c4256d8957ecf3dd81cb8526.slice",
"CreateInfra": true,
"InfraContainerID": "6e19e91733b8a2e0b328f2c9cd8d4acde25be9c26a26e4d48216b8ef173230a8",
"InfraConfig": {
"PortBindings": {},
"HostNetwork": false,
"StaticIP": "",
"StaticMAC": "",
"NoManageResolvConf": false,
"DNSServer": null,
"DNSSearch": null,
"DNSOption": null,
"NoManageHosts": false,
"HostAdd": null,
"Networks": [
"podman-default-kube-network"
],
"NetworkOptions": null,
"pid_ns": "private",
"userns": "host",
"uts_ns": "private"
},
"SharedNamespaces": [
"uts",
"ipc",
"net"
],
"NumContainers": 2,
"Containers": [
{
"Id": "6e19e91733b8a2e0b328f2c9cd8d4acde25be9c26a26e4d48216b8ef173230a8",
"Name": "78158d791d85-infra",
"State": "running"
},
{
"Id": "b1d0de1addaef0a54d936239da4ea99ac7b30c278c9910edf4c3ff1cde4c9207",
"Name": "demo-build-remote-container",
"State": "running"
}
],
"RestartPolicy": "always",
"LockNumber": 5
}
]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⋮ 4 frames hidden ⋮
5: ::ext_report::h22e59aa25126b9ee
at /home/axel7083/.cargo/registry/src/index.crates.io-6f17d22bba15001f/eyre-0.6.12/src/context.rs:26
⋮ 1 frame hidden ⋮
7: podlet::cli::generate::podman_inspect::hc0bad2566c985698
at /home/axel7083/RustroverProjects/podlet/src/cli/generate.rs:815
8: podlet::cli::generate::PodInspect::from_pod::he7770795e2d540fd
at /home/axel7083/RustroverProjects/podlet/src/cli/generate.rs:423
9: podlet::cli::generate::PodParser::from_pod::h867615000f3834f4
at /home/axel7083/RustroverProjects/podlet/src/cli/generate.rs:335
10: podlet::cli::generate::Generate::try_into_quadlet_files::h8e2a81b362f2e7e7
at /home/axel7083/RustroverProjects/podlet/src/cli/generate.rs:130
11: podlet::cli::Commands::try_into_files::h449634020861c406
at /home/axel7083/RustroverProjects/podlet/src/cli.rs:385
12: podlet::cli::Cli::try_into_files::h508a003f9d1d46ab
at /home/axel7083/RustroverProjects/podlet/src/cli.rs:281
13: podlet::cli::Cli::print_or_write_files::hdb0678eeadc4fc4e
at /home/axel7083/RustroverProjects/podlet/src/cli.rs:183
14: podlet::main::h0b705ee0a270f098
at /home/axel7083/RustroverProjects/podlet/src/main.rs:28
15: core::ops::function::FnOnce::call_once::haee9e57a54525e81
at /home/axel7083/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250
16: std::sys::backtrace::__rust_begin_short_backtrace::hb43fd9bb7291113d
at /home/axel7083/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:154
⋮ 15 frames hidden ⋮

Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.
Run with RUST_BACKTRACE=full to include source snippets.
```

## System info

- podman version: 5.3.1 (native)
- os: fedora 41

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.