Skip to content

Issue on the 'qemu-tdx' attestation variant  #2949

@Ruoyu-y

Description

@Ruoyu-y

Issue description

There's already QEMU TDX code within Constellation to support the qemu-tdx attestation variant. After enable them in the source code and leverage the local Libvirt/QEMU(already have TDX support) to bootstrap constellation, i met an error like this:

Error: error creating libvirt domain: internal error: qemu unexpectedly closed the monitor: 2024-02-26T01:39:08.566024Z qemu-s
2024-02-26T01:39:08.566075Z qemu-system-x86_64: warning: ==============================================================
2024-02-26T01:39:08.566083Z qemu-system-x86_64: warning: !!!    Warning: Please upgrade to upstream version TDVF    !!!
2024-02-26T01:39:08.566090Z qemu-system-x86_64: warning: !!!             Old version will be deprecated soon        !!!
2024-02-26T01:39:08.566096Z qemu-system-x86_64: warning: ==============================================================
2024-02-26T01:39:08.566102Z qemu-system-x86_64: failed to parse TDVF for TDX VM

However, this OVMF could boot up TDs successfully in my local environment. Would there be cases that i misconfigure the constellation-conf.yaml or something within terraform files? Any hint?

Steps to reproduce the behavior

No response

Version

No response

Constellation Config

Configurations used:

version: v4 # Schema version of this configuration file.
image: v2.14.3 # Machine image version used to create Constellation nodes.
name: constell # Name of the cluster.
kubernetesVersion: v1.28.5 # Kubernetes version to be installed into the cluster.
microserviceVersion: v2.16.0-pre.0.20240205105659-a97569b111a7 # Microservice version to be installed into the cluster. Defaults to the version of the CLI.
debugCluster: false # DON'T USE IN PRODUCTION: enable debug mode and use debug images.
customEndpoint: "" # Optional custom endpoint (DNS name) for the Constellation API server.
internalLoadBalancer: false # Flag to enable/disable the internal load balancer. If enabled, the Constellation is only accessible from within the VPC.
serviceCIDR: 10.96.0.0/12 # The Kubernetes Service CIDR to be used for the cluster. This value will only be used during the first initialization of the Constellation.
# Supported cloud providers and their specific configurations.
provider:
  # Configuration for QEMU as provider.
  qemu:
    imageFormat: raw # Format of the image to use for the VMs. Should be either qcow2 or raw.
    vcpus: 2 # vCPU count for the VMs.
    memory: 2048 # Amount of memory per instance (MiB).
    metadataAPIServer: docker.io/rry1/qemu-metadata-api:v2.15.0-pre.0.20240131153006-08491f2d8f81@sha256:fbdb3429f7f248141d087f076581997e62072ab571a75c828025a3ace1699caa # Container image to use for the QEMU metadata server.
    libvirtSocket: "qemu:///system" # Libvirt connection URI. Leave empty to start a libvirt instance in Docker.
    libvirtContainerImage: docker.io/rry1/libvirt:v2.15.0-pre.0.20240131153006-08491f2d8f81@sha256:231c09d1574fddb6a681b787d0d40edfd08dae15411dfe6ebab38a7fa57bf1b5 # Container image to use for launching a containerized libvirt daemon. Only relevant if `libvirtSocket = ""`.
    nvram: production # NVRAM template to be used for secure boot. Can be sentinel value "production", "testing" or a path to a custom NVRAM template
    firmware: "/usr/share/qemu/OVMF_CODE.fd" # Path to the OVMF firmware. Leave empty for auto selection.
# Node groups to be created in the cluster.
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions