Skip to content
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

Add operating system details to instance state #1234

Merged
merged 6 commits into from
Sep 24, 2024

Conversation

gibmat
Copy link
Collaborator

@gibmat gibmat commented Sep 20, 2024

This adds operating system details to an instance's state. incus-agent has been extended to populate this information when running within a VM.

$ incus info debian
Name: debian
Status: RUNNING
Type: virtual-machine
Architecture: x86_64
PID: 658181
Created: 2024/09/13 16:13 MDT
Last Used: 2024/09/20 11:59 MDT
Started: 2024/09/20 11:59 MDT

Operating System:
  OS: Debian GNU/Linux
  OS Version: 12 (bookworm)
  Kernel Version: 6.1.0-25-amd64
  Hostname: debian
  FQDN: debian.testing.local

Resources:
  Processes: 16
[snip]

@gibmat gibmat requested a review from stgraber as a code owner September 20, 2024 18:11
@github-actions github-actions bot added Documentation Documentation needs updating API Changes to the REST API labels Sep 20, 2024
@stgraber
Copy link
Member

Looks like this will need a rebase to fix the i18n conflicts.

The first commit should be split up a bit into:

  • api: instances_state_os_info
  • shared/api: Add OSInfo to InstanceState
  • doc/rest-api: Refresh swagger YAML

I also think it may be cleaner to make OSInfo a pointer rather than an attached struct.
With it being a pointer, the CLI can then just do a OSInfo != nil and then print all the fields (showing them empty if we don't have them). This will save the per-field checks and will provide more consistent output when the agent is running.

@gibmat gibmat force-pushed the add-os-info-to-instance-state branch 2 times, most recently from 6223d2a to a988fbf Compare September 23, 2024 15:51
@stgraber
Copy link
Member

Looks good, just one little bit of code to move between commits and we'll be good to go!

Signed-off-by: Mathias Gibbens <mathias.gibbens@futurfusion.io>
Signed-off-by: Mathias Gibbens <mathias.gibbens@futurfusion.io>
Signed-off-by: Mathias Gibbens <mathias.gibbens@futurfusion.io>
Signed-off-by: Mathias Gibbens <mathias.gibbens@futurfusion.io>
Signed-off-by: Mathias Gibbens <mathias.gibbens@futurfusion.io>
Signed-off-by: Mathias Gibbens <mathias.gibbens@futurfusion.io>
@gibmat gibmat force-pushed the add-os-info-to-instance-state branch from a988fbf to 977fd74 Compare September 24, 2024 14:11
@stgraber stgraber merged commit e066350 into lxc:main Sep 24, 2024
26 of 30 checks passed
@gibmat gibmat deleted the add-os-info-to-instance-state branch September 24, 2024 17:29
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Oct 17, 2024
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [lxc/incus](https://github.com/lxc/incus) | minor | `v6.5.0` -> `v6.6.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>lxc/incus (lxc/incus)</summary>

### [`v6.6.0`](https://github.com/lxc/incus/releases/tag/v6.6.0): Incus 6.6

[Compare Source](lxc/incus@v6.5.0...v6.6.0)

### Announcement

https://discuss.linuxcontainers.org/t/incus-6-6-has-been-released/21762

#### What's Changed

-   Fix capitalization in `incus network list` by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1191
-   incusd/storage/drivers/lvm: Cache VG extent size by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1192
-   incusd/network/ovn: LSP dynamic allocation can't be done per protocol by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1195
-   incusd/instance/qemu: Always re-generate the nvram symlink by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1193
-   incusd/instance/qemu: Set O_DIRECT when passing in FDs by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1196
-   Translations update from Hosted Weblate by [@&#8203;weblate](https://github.com/weblate) in lxc/incus#1194
-   incusd/apparmor: Only initialize with the daemon by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1197
-   Various fixes by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1198
-   doc: Fix limits.memory default value unit by [@&#8203;kznrluk](https://github.com/kznrluk) in lxc/incus#1199
-   incusd/storage/zfs: Make sure the zvol is a block device by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1204
-   incusd/apparmor: Don't attempt unloading profiles when apparmor is di… by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1206
-   Translations update from Hosted Weblate by [@&#8203;weblate](https://github.com/weblate) in lxc/incus#1208
-   Translations update from Hosted Weblate by [@&#8203;weblate](https://github.com/weblate) in lxc/incus#1212
-   doc/installing: Add Rocky Linux 9 by [@&#8203;sspencerwire](https://github.com/sspencerwire) in lxc/incus#1213
-   Translations update from Hosted Weblate by [@&#8203;weblate](https://github.com/weblate) in lxc/incus#1219
-   Fix storage volume snapshot listings by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1218
-   internal/server/instance/drivers: Disable 9p and vsock for Windows VMs by [@&#8203;gibmat](https://github.com/gibmat) in lxc/incus#1217
-   Add qcow2 and vmdk support to incus-migrate by [@&#8203;gibmat](https://github.com/gibmat) in lxc/incus#1214
-   scripts: fix empty-incus.sh instances delete by [@&#8203;itviewer](https://github.com/itviewer) in lxc/incus#1222
-   doc/installing: Add link to Arch Wiki for Incus by [@&#8203;simos](https://github.com/simos) in lxc/incus#1227
-   Properly handle `--project` in CLI error messages by [@&#8203;bensmrs](https://github.com/bensmrs) in lxc/incus#1230
-   Allow VMs to pull console history similar to containers by [@&#8203;gibmat](https://github.com/gibmat) in lxc/incus#1228
-   incus/console: Add completion by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1231
-   Various bugfixes by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1236
-   Don't return an error if console log file doesn't exist by [@&#8203;gibmat](https://github.com/gibmat) in lxc/incus#1241
-   incusd/instance/qemu: Properly plumb I/O limits by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1242
-   cleanup: Replace use of os.IsNotExist(err) with errors.Is(err, fs.ErrNotExist) by [@&#8203;gibmat](https://github.com/gibmat) in lxc/incus#1245
-   Allow to use `dns.search` when only IPv4 is enabled by [@&#8203;pmoranga](https://github.com/pmoranga) in lxc/incus#1244
-   apparmor: Allow all mounts in unprivileged containers by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1243
-   doc: add note for Nvidia usage when building from source in OpenSUSE by [@&#8203;javiertoledos](https://github.com/javiertoledos) in lxc/incus#1232
-   Add operating system details to instance state by [@&#8203;gibmat](https://github.com/gibmat) in lxc/incus#1234
-   Translations update from Hosted Weblate by [@&#8203;weblate](https://github.com/weblate) in lxc/incus#1247
-   tests: Don't over-provision test volumes by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1246
-   cmd/incus-migrate: Don't copy converted VM image by [@&#8203;gibmat](https://github.com/gibmat) in lxc/incus#1248
-   doc: add prerequisites section for building documentation by [@&#8203;javiertoledos](https://github.com/javiertoledos) in lxc/incus#1233
-   Fix cross-cluster image transfer by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1249
-   Translations update from Hosted Weblate by [@&#8203;weblate](https://github.com/weblate) in lxc/incus#1250
-   Add OVN load balancer state API by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1251
-   Add missing placement scriptlet calls by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1254
-   VM console log fixes by [@&#8203;gibmat](https://github.com/gibmat) in lxc/incus#1255
-   Fix alias handling by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1256
-   incusd/instance/qemu: Fix issues with old NVRAM by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1257
-   Added ability for user to specify the macvlan mode using the mode key… by [@&#8203;farsonic](https://github.com/farsonic) in lxc/incus#1258
-   Translations update from Hosted Weblate by [@&#8203;weblate](https://github.com/weblate) in lxc/incus#1269
-   Allows the VM's limits.memory configuration to be set to a percentage value by [@&#8203;itviewer](https://github.com/itviewer) in lxc/incus#1270
-   incusd/network/ovn: Fix CIDR size check by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1271
-   incusd/instance/lxc: Mount /run if the path exists by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1275
-   Run cluster evacuate and restore in parallel by [@&#8203;gibmat](https://github.com/gibmat) in lxc/incus#1262
-   Documentation fixes by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1276
-   client: Capture original OCI image identifier by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1277
-   docs: mention alpine edge repository in alpine installation by [@&#8203;thebigbone](https://github.com/thebigbone) in lxc/incus#1260
-   Change incus file delete operation to sftp by [@&#8203;HassanAlsamahi](https://github.com/HassanAlsamahi) in lxc/incus#1266
-   Translations update from Hosted Weblate by [@&#8203;weblate](https://github.com/weblate) in lxc/incus#1279
-   Allow fully creating LVM cluster pools through the API by [@&#8203;gibmat](https://github.com/gibmat) in lxc/incus#1278
-   Allow adding external interfaces to an OVN network by [@&#8203;SpiffyEight77](https://github.com/SpiffyEight77) in lxc/incus#1263
-   Fix VM race conditions by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1280
-   Various bugfixes by [@&#8203;stgraber](https://github.com/stgraber) in lxc/incus#1283

#### New Contributors

-   [@&#8203;kznrluk](https://github.com/kznrluk) made their first contribution in lxc/incus#1199
-   [@&#8203;sspencerwire](https://github.com/sspencerwire) made their first contribution in lxc/incus#1213
-   [@&#8203;gibmat](https://github.com/gibmat) made their first contribution in lxc/incus#1217
-   [@&#8203;itviewer](https://github.com/itviewer) made their first contribution in lxc/incus#1222
-   [@&#8203;pmoranga](https://github.com/pmoranga) made their first contribution in lxc/incus#1244
-   [@&#8203;javiertoledos](https://github.com/javiertoledos) made their first contribution in lxc/incus#1232
-   [@&#8203;farsonic](https://github.com/farsonic) made their first contribution in lxc/incus#1258
-   [@&#8203;thebigbone](https://github.com/thebigbone) made their first contribution in lxc/incus#1260

**Full Changelog**: lxc/incus@v6.5.0...v6.6.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API Changes to the REST API Documentation Documentation needs updating
Development

Successfully merging this pull request may close these issues.

2 participants