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

lxd: add --dump-env and --dump-config #13467

Open
mmokrejs opened this issue May 10, 2024 · 1 comment
Open

lxd: add --dump-env and --dump-config #13467

mmokrejs opened this issue May 10, 2024 · 1 comment

Comments

@mmokrejs
Copy link

Required information

  • Distribution: Gentoo
  • Distribution version: current
  • The output of "snap list --all lxd core20 core22 core24 snapd": NA
  • The output of "lxc info" or if that fails:
# lxc info
config: {}
api_extensions:
- storage_zfs_remove_snapshots
- container_host_shutdown_timeout
- container_stop_priority
- container_syscall_filtering
- auth_pki
- container_last_used_at
- etag
- patch
- usb_devices
- https_allowed_credentials
- image_compression_algorithm
- directory_manipulation
- container_cpu_time
- storage_zfs_use_refquota
- storage_lvm_mount_options
- network
- profile_usedby
- container_push
- container_exec_recording
- certificate_update
- container_exec_signal_handling
- gpu_devices
- container_image_properties
- migration_progress
- id_map
- network_firewall_filtering
- network_routes
- storage
- file_delete
- file_append
- network_dhcp_expiry
- storage_lvm_vg_rename
- storage_lvm_thinpool_rename
- network_vlan
- image_create_aliases
- container_stateless_copy
- container_only_migration
- storage_zfs_clone_copy
- unix_device_rename
- storage_lvm_use_thinpool
- storage_rsync_bwlimit
- network_vxlan_interface
- storage_btrfs_mount_options
- entity_description
- image_force_refresh
- storage_lvm_lv_resizing
- id_map_base
- file_symlinks
- container_push_target
- network_vlan_physical
- storage_images_delete
- container_edit_metadata
- container_snapshot_stateful_migration
- storage_driver_ceph
- storage_ceph_user_name
- resource_limits
- storage_volatile_initial_source
- storage_ceph_force_osd_reuse
- storage_block_filesystem_btrfs
- resources
- kernel_limits
- storage_api_volume_rename
- network_sriov
- console
- restrict_devlxd
- migration_pre_copy
- infiniband
- maas_network
- devlxd_events
- proxy
- network_dhcp_gateway
- file_get_symlink
- network_leases
- unix_device_hotplug
- storage_api_local_volume_handling
- operation_description
- clustering
- event_lifecycle
- storage_api_remote_volume_handling
- nvidia_runtime
- container_mount_propagation
- container_backup
- devlxd_images
- container_local_cross_pool_handling
- proxy_unix
- proxy_udp
- clustering_join
- proxy_tcp_udp_multi_port_handling
- network_state
- proxy_unix_dac_properties
- container_protection_delete
- unix_priv_drop
- pprof_http
- proxy_haproxy_protocol
- network_hwaddr
- proxy_nat
- network_nat_order
- container_full
- backup_compression
- nvidia_runtime_config
- storage_api_volume_snapshots
- storage_unmapped
- projects
- network_vxlan_ttl
- container_incremental_copy
- usb_optional_vendorid
- snapshot_scheduling
- snapshot_schedule_aliases
- container_copy_project
- clustering_server_address
- clustering_image_replication
- container_protection_shift
- snapshot_expiry
- container_backup_override_pool
- snapshot_expiry_creation
- network_leases_location
- resources_cpu_socket
- resources_gpu
- resources_numa
- kernel_features
- id_map_current
- event_location
- storage_api_remote_volume_snapshots
- network_nat_address
- container_nic_routes
- cluster_internal_copy
- seccomp_notify
- lxc_features
- container_nic_ipvlan
- network_vlan_sriov
- storage_cephfs
- container_nic_ipfilter
- resources_v2
- container_exec_user_group_cwd
- container_syscall_intercept
- container_disk_shift
- storage_shifted
- resources_infiniband
- daemon_storage
- instances
- image_types
- resources_disk_sata
- clustering_roles
- images_expiry
- resources_network_firmware
- backup_compression_algorithm
- ceph_data_pool_name
- container_syscall_intercept_mount
- compression_squashfs
- container_raw_mount
- container_nic_routed
- container_syscall_intercept_mount_fuse
- container_disk_ceph
- virtual-machines
- image_profiles
- clustering_architecture
- resources_disk_id
- storage_lvm_stripes
- vm_boot_priority
- unix_hotplug_devices
- api_filtering
- instance_nic_network
- clustering_sizing
- firewall_driver
- projects_limits
- container_syscall_intercept_hugetlbfs
- limits_hugepages
- container_nic_routed_gateway
- projects_restrictions
- custom_volume_snapshot_expiry
- volume_snapshot_scheduling
- trust_ca_certificates
- snapshot_disk_usage
- clustering_edit_roles
- container_nic_routed_host_address
- container_nic_ipvlan_gateway
- resources_usb_pci
- resources_cpu_threads_numa
- resources_cpu_core_die
- api_os
- container_nic_routed_host_table
- container_nic_ipvlan_host_table
- container_nic_ipvlan_mode
- resources_system
- images_push_relay
- network_dns_search
- container_nic_routed_limits
- instance_nic_bridged_vlan
- network_state_bond_bridge
- usedby_consistency
- custom_block_volumes
- clustering_failure_domains
- resources_gpu_mdev
- console_vga_type
- projects_limits_disk
- network_type_macvlan
- network_type_sriov
- container_syscall_intercept_bpf_devices
- network_type_ovn
- projects_networks
- projects_networks_restricted_uplinks
- custom_volume_backup
- backup_override_name
- storage_rsync_compression
- network_type_physical
- network_ovn_external_subnets
- network_ovn_nat
- network_ovn_external_routes_remove
- tpm_device_type
- storage_zfs_clone_copy_rebase
- gpu_mdev
- resources_pci_iommu
- resources_network_usb
- resources_disk_address
- network_physical_ovn_ingress_mode
- network_ovn_dhcp
- network_physical_routes_anycast
- projects_limits_instances
- network_state_vlan
- instance_nic_bridged_port_isolation
- instance_bulk_state_change
- network_gvrp
- instance_pool_move
- gpu_sriov
- pci_device_type
- storage_volume_state
- network_acl
- migration_stateful
- disk_state_quota
- storage_ceph_features
- projects_compression
- projects_images_remote_cache_expiry
- certificate_project
- network_ovn_acl
- projects_images_auto_update
- projects_restricted_cluster_target
- images_default_architecture
- network_ovn_acl_defaults
- gpu_mig
- project_usage
- network_bridge_acl
- warnings
- projects_restricted_backups_and_snapshots
- clustering_join_token
- clustering_description
- server_trusted_proxy
- clustering_update_cert
- storage_api_project
- server_instance_driver_operational
- server_supported_storage_drivers
- event_lifecycle_requestor_address
- resources_gpu_usb
- clustering_evacuation
- network_ovn_nat_address
- network_bgp
- network_forward
- custom_volume_refresh
- network_counters_errors_dropped
- metrics
- image_source_project
- clustering_config
- network_peer
- linux_sysctl
- network_dns
- ovn_nic_acceleration
- certificate_self_renewal
- instance_project_move
- storage_volume_project_move
- cloud_init
- network_dns_nat
- database_leader
- instance_all_projects
- clustering_groups
- ceph_rbd_du
- instance_get_full
- qemu_metrics
- gpu_mig_uuid
- event_project
- clustering_evacuation_live
- instance_allow_inconsistent_copy
- network_state_ovn
- storage_volume_api_filtering
- image_restrictions
- storage_zfs_export
- network_dns_records
- storage_zfs_reserve_space
- network_acl_log
- storage_zfs_blocksize
- metrics_cpu_seconds
- instance_snapshot_never
- certificate_token
- instance_nic_routed_neighbor_probe
- event_hub
- agent_nic_config
- projects_restricted_intercept
- metrics_authentication
- images_target_project
- cluster_migration_inconsistent_copy
- cluster_ovn_chassis
- container_syscall_intercept_sched_setscheduler
- storage_lvm_thinpool_metadata_size
- storage_volume_state_total
- instance_file_head
- instances_nic_host_name
- image_copy_profile
- container_syscall_intercept_sysinfo
- clustering_evacuation_mode
- resources_pci_vpd
- qemu_raw_conf
- storage_cephfs_fscache
- network_load_balancer
- vsock_api
- instance_ready_state
- network_bgp_holdtime
- storage_volumes_all_projects
- metrics_memory_oom_total
- storage_buckets
- storage_buckets_create_credentials
- metrics_cpu_effective_total
- projects_networks_restricted_access
- storage_buckets_local
- loki
- acme
- internal_metrics
- cluster_join_token_expiry
- remote_token_expiry
- init_preseed
- storage_volumes_created_at
- cpu_hotplug
- projects_networks_zones
- network_txqueuelen
- cluster_member_state
- instances_placement_scriptlet
- storage_pool_source_wipe
- zfs_block_mode
- instance_generation_id
- disk_io_cache
- amd_sev
- storage_pool_loop_resize
- migration_vm_live
- ovn_nic_nesting
- oidc
- network_ovn_l3only
- ovn_nic_acceleration_vdpa
- cluster_healing
- instances_state_total
- auth_user
- security_csm
- instances_rebuild
- numa_cpu_placement
- custom_volume_iso
- network_allocations
- storage_api_remote_volume_snapshot_copy
- zfs_delegate
- operations_get_query_all_projects
- metadata_configuration
- syslog_socket
- event_lifecycle_name_and_project
- instances_nic_limits_priority
- disk_initial_volume_configuration
- operation_wait
- cluster_internal_custom_volume_copy
- disk_io_bus
- storage_cephfs_create_missing
- instance_move_config
- ovn_ssl_config
- init_preseed_storage_volumes
- metrics_instances_count
- server_instance_type_info
- resources_disk_mounted
- server_version_lts
- oidc_groups_claim
- loki_config_instance
- storage_volatile_uuid
- import_instance_devices
- instances_uefi_vars
- instances_migration_stateful
- container_syscall_filtering_allow_deny_syntax
- access_management
- vm_disk_io_limits
- storage_volumes_all
- instances_files_modify_permissions
api_status: stable
api_version: "1.0"
auth: trusted
public: false
auth_methods:
- tls
auth_user_name: root
auth_user_method: unix
environment:
  addresses: []
  architectures:
  - x86_64
  - i686
  certificate: |
    -----BEGIN CERTIFICATE-----
    MIICDzCCAZWgAwIBAgIQEXV0oidWpjtZIBbRNDFAYjAKBggqhkjOPQQDAzA4MRww
    GgYDVQQKExNsaW51eGNvbnRhaW5lcnMub3JnMRgwFgYDVQQDDA9yb290QGRlbGwt
    ZTU1ODAwHhcNMjMwOTEyMDkyNjQ2WhcNMzMwOTA5MDkyNjQ2WjA4MRwwGgYDVQQK
    ExNsaW51eGNvbnRhaW5lcnMub3JnMRgwFgYDVQQDDA9yb290QGRlbGwtZTU1ODAw
    djAQBgcqhkjOPQIBBgUrgQQAIgNiAAR+0So/ESK5qNqE0Pnf+6esB3a+sSB/k6gg
    zWPw3u5ibMsI6SzOnHk791PBxFj7XOczJKJiXkBOsy/yszYWgK9vL184mWAzCMZu
    BBAl5fPotnDKqodIA/Ekqa/gtXVkW1ijZDBiMA4GA1UdDwEB/wQEAwIFoDATBgNV
    HSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMC0GA1UdEQQmMCSCCmRlbGwt
    ZTU1ODCHBH8AAAGHEAAAAAAAAAAAAAAAAAAAAAEwCgYIKoZIzj0EAwMDaAAwZQIx
    AOtnEW/8f+MwmRs6mzVJWuh5fhf20TCcVMUB61JLu/EGCzKfB36EACVeKwqmnD6y
    ZwIwYBEu7Nzyb8nWL9Q3jcsa/lf9eeJjGkiUW67gs0n6qq6C1Biy6BAN7BZVo+me
    ywbj
    -----END CERTIFICATE-----
  certificate_fingerprint: 7fd61a6e356536f2b16e529a0edd944d4298e653c77e06dfca1a308a4c343ce8
  driver: lxc
  driver_version: 6.0.0
  instance_types:
  - container
  firewall: xtables
  kernel: Linux
  kernel_architecture: x86_64
  kernel_features:
    idmapped_mounts: "true"
    netnsid_getifaddrs: "true"
    seccomp_listener: "true"
    seccomp_listener_continue: "true"
    uevent_injection: "true"
    unpriv_fscaps: "true"
  kernel_version: 6.7.10-gentoo-dist
  lxc_features:
    cgroup2: "true"
    core_scheduling: "true"
    devpts_fd: "true"
    idmapped_mounts_v2: "true"
    mount_injection_file: "true"
    network_gateway_device_route: "true"
    network_ipvlan: "true"
    network_l2proxy: "true"
    network_phys_macvlan_mtu: "true"
    network_veth_router: "true"
    pidfd: "true"
    seccomp_allow_deny_syntax: "true"
    seccomp_notify: "true"
    seccomp_proxy_send_notify_fd: "true"
  os_name: Gentoo
  os_version: "2.15"
  project: default
  server: lxd
  server_clustered: false
  server_event_mode: full-mesh
  server_name: vss2
  server_pid: 3682640
  server_version: 5.21.1
  server_lts: true
  storage: btrfs
  storage_version: "6.8"
  storage_supported_drivers:
  - name: dir
    version: "1"
    remote: false
  - name: btrfs
    version: "6.8"
    remote: false
#
  • Kernel version: 6.8.8
  • LXC version: app-containers/lxc-6.0.0-r1:0/1.8::gentoo USE="caps pam seccomp ssl systemd tools -apparmor -examples -io-uring -lto -man (-selinux) -test -verify-sig"
  • LXD version: app-containers/lxd-5.21.1:0/stable::gentoo USE="nls -apparmor -verify-sig"
  • Storage backend in use: ext4

Issue description

lxd does not start but fails with supposedly a false message

Steps to reproduce

# lxc start ubuntu-2004 
Error: Unable to locate the file for firmware "OVMF_CODE.fd"
Try `lxc info --show-log ubuntu-2004` for more info
#
# lxc info --show-log ubuntu-2004
Name: ubuntu-2004
Status: STOPPED
Type: virtual-machine
Architecture: x86_64
Created: 2023/11/01 14:51 CET
Last Used: 2024/02/14 12:07 CET

Snapshots:
+------------------------------------+----------------------+------------+----------+
|                NAME                |       TAKEN AT       | EXPIRES AT | STATEFUL |
+------------------------------------+----------------------+------------+----------+
| ubuntu-2004.lxc_snapshot__20231106 | 2023/11/06 12:51 CET |            | NO       |
+------------------------------------+----------------------+------------+----------+
Error: open /var/log/lxd/ubuntu-2004/qemu.log: no such file or directory
#
# cat /etc/conf.d/lxd 
# Group which owns the shared socket
LXD_OPTIONS+=" --group lxd"

# Enable cpu profiling into the specified file
#LXD_OPTIONS+=" --cpuprofile /tmp/lxc_cpu_profile"

# Enable memory profiling into the specified file
#LXD_OPTIONS+=" --memprofile /tmp/lxc_mem_profile"

# Enable debug mode
#LXD_OPTIONS+=" --debug"

# For debugging, print a complete stack trace every n seconds
#LXD_OPTIONS+=" --print-goroutines-every 5"

# Enable verbose mode
#LXD_OPTIONS+=" -v"

# Logfile to log to
#LXD_OPTIONS+=" --logfile /var/log/lxd/lxd.log"

# Enable syslog logging
#LXD_OPTIONS+=" --syslog"

LXD_QEMU_FW_PATH="/usr/share/edk2-ovmf:"
#

There is no way to check whether lxd parsed properly the input file. I don't believe it did.

# ls -latr /usr/share/edk2-ovmf
total 6328
-rw-r--r--   1 root root   15744 Aug 27  2022 EnrollDefaultKeys.efi
-rw-r--r--   1 root root 1966080 Aug 27  2022 OVMF_CODE.secboot.fd
-rw-r--r--   1 root root 1966080 Aug 27  2022 OVMF_CODE.fd
-rw-r--r--   1 root root  131072 Aug 27  2022 OVMF_VARS.fd
-rw-r--r--   1 root root  907584 Aug 27  2022 Shell.efi
-rw-r--r--   1 root root 1474560 Aug 27  2022 UefiShell.img

The description in https://documentation.ubuntu.com/lxd/en/latest/environment/#server-environment-variable is insufficient as it does not tell where to define the env variables. I am using systemd, sadly.

I propose runtime options to be introduced to make lxd print parsed values.

I know

@MggMuggins
Copy link
Contributor

I don't have any familiarity with Gentoo, but it looks like files in /etc/conf.d are read by OpenRC, not systemd. You should be able to create a systemd unit override file for your lxd unit with systemctl edit, modify the cli params there, and add a few Environment="LXD_QEMU_FW_PATH=..." under the [Service] section.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants