Skip to content

feat: confidential computing#684

Merged
avirtopeanu-ionos merged 8 commits into
masterfrom
feat/confidential-computing
Jul 21, 2026
Merged

feat: confidential computing#684
avirtopeanu-ionos merged 8 commits into
masterfrom
feat/confidential-computing

Conversation

@avirtopeanu-ionos

Copy link
Copy Markdown
Contributor
  • image upload --confidential uploads to the /confidential-images/ FTP directory. Restricted to QCOW2 images (which must carry a LAUNCH_ARTIFACTS partition), and forces the image's mutable properties to the only values the platform accepts: cloud-init NONE, all hot-plug disabled, and legacy BIOS off. Conflicting explicit flags are rejected.
  • server create --confidential creates a Confidential VM from a confidential boot image. Requires --type ENTERPRISE and --image-id (a private, SEV-SNP image; --image-id tab-completion is filtered to these). A boot volume is built from the image and attached in the same request (size it with --size/--storage-type), so the API can derive cores and cpuFamily from the image's launch-config.json--cores and --cpu-family must not be set.
  • RequiredFeatures and EnabledFeatures columns.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Confidential Computing (SEV-SNP) support to ionosctl for image upload and server creation flows, while updating the vendored Cloud API v6 Go SDK to expose new API fields (required/enabled features, storage type, Kubernetes taints, etc.) and extending CLI output/docs accordingly.

Changes:

  • Add --confidential to image upload (FTP path + enforced/overridden mutable image properties + improved FTP credential resolution for token-auth users).
  • Add --confidential to server create (image-derived cores/CPU family, inline boot-volume creation with --size/--storage-type, and filtered --image-id completion).
  • Update SDK dependency to github.com/ionos-cloud/sdk-go/v6 v6.3.11 and surface new feature-related columns/filters in CLI + docs.

Reviewed changes

Copilot reviewed 39 out of 57 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
vendor/modules.txt Update vendored module list for sdk-go/v6 v6.3.11.
vendor/github.com/ionos-cloud/sdk-go/v6/response.go Add safer helpers for status code and Location parsing.
vendor/github.com/ionos-cloud/sdk-go/v6/README.md Document newly generated model types in the SDK README.
vendor/github.com/ionos-cloud/sdk-go/v6/model_volume_properties.go Extend image/template volume comments to describe Confidential Computing constraints.
vendor/github.com/ionos-cloud/sdk-go/v6/model_template_properties.go Add storageType support to template properties.
vendor/github.com/ionos-cloud/sdk-go/v6/model_taint_effect.go Add new generated enum for Kubernetes taint effects.
vendor/github.com/ionos-cloud/sdk-go/v6/model_server_properties.go Add enabledFeatures plus Confidential Computing semantics in comments.
vendor/github.com/ionos-cloud/sdk-go/v6/model_location_properties.go Add metroRegion field support.
vendor/github.com/ionos-cloud/sdk-go/v6/model_kubernetes_node_pool_taint.go Add generated model for node pool taints.
vendor/github.com/ionos-cloud/sdk-go/v6/model_kubernetes_node_pool_properties.go Add taints field to node pool properties.
vendor/github.com/ionos-cloud/sdk-go/v6/model_kubernetes_node_pool_properties_for_put.go Add taints field for node pool PUT.
vendor/github.com/ionos-cloud/sdk-go/v6/model_kubernetes_node_pool_properties_for_post.go Add taints field for node pool POST.
vendor/github.com/ionos-cloud/sdk-go/v6/model_image_properties.go Add requiredFeatures field to image properties.
vendor/github.com/ionos-cloud/sdk-go/v6/model_cpu_architecture_properties.go Add enabledFeatures to CPU architecture properties.
vendor/github.com/ionos-cloud/sdk-go/v6/configuration.go Bump SDK user agent to v6.3.11.
vendor/github.com/ionos-cloud/sdk-go/v6/client.go Bump SDK version + improve retry logging and response-body draining on retries.
vendor/github.com/ionos-cloud/sdk-go/v6/api_servers.go SDK update; add/adjust error handling paths for server console endpoint.
internal/constants/constants.go Introduce confidential flag constant.
go.sum Update checksums for sdk-go/v6 v6.3.11.
go.mod Bump sdk-go/v6 dependency to v6.3.11.
docs/subcommands/Compute Engine/template/list.md Add storageType to template list filter docs.
docs/subcommands/Compute Engine/server/update.md Add EnabledFeatures column documentation.
docs/subcommands/Compute Engine/server/token/get.md Add EnabledFeatures column documentation.
docs/subcommands/Compute Engine/server/suspend.md Add EnabledFeatures column documentation.
docs/subcommands/Compute Engine/server/stop.md Add EnabledFeatures column documentation.
docs/subcommands/Compute Engine/server/start.md Add EnabledFeatures column documentation.
docs/subcommands/Compute Engine/server/resume.md Add EnabledFeatures column documentation.
docs/subcommands/Compute Engine/server/reboot.md Add EnabledFeatures column documentation.
docs/subcommands/Compute Engine/server/list.md Add enabledFeatures filter + EnabledFeatures column documentation.
docs/subcommands/Compute Engine/server/gpu/list.md Add EnabledFeatures column documentation.
docs/subcommands/Compute Engine/server/get.md Add EnabledFeatures column documentation.
docs/subcommands/Compute Engine/server/delete.md Add EnabledFeatures column documentation.
docs/subcommands/Compute Engine/server/create.md Document --confidential, plus --size/--storage-type for confidential boot volume.
docs/subcommands/Compute Engine/server/console/get.md Add EnabledFeatures column documentation.
docs/subcommands/Compute Engine/server/cdrom/list.md Add requiredFeatures to image-related filter docs.
docs/subcommands/Compute Engine/location/list.md Add metroRegion filter + CPU enabled-features column docs.
docs/subcommands/Compute Engine/location/get.md Add CPU enabled-features column docs.
docs/subcommands/Compute Engine/location/cpu/list.md Add EnabledFeatures column docs for CPU families.
docs/subcommands/Compute Engine/image/upload.md Document token vs basic creds for FTP + add RequiredFeatures column and --confidential help.
docs/subcommands/Compute Engine/image/update.md Add RequiredFeatures column documentation.
docs/subcommands/Compute Engine/image/list.md Add requiredFeatures filter + RequiredFeatures column documentation.
docs/subcommands/Compute Engine/image/get.md Add RequiredFeatures column documentation.
docs/subcommands/Compute Engine/image/delete.md Add RequiredFeatures column documentation.
commands/compute/server/server.go Add EnabledFeatures to server table columns.
commands/compute/server/run_server.go Enforce confidential server-create constraints + attach image-derived boot volume inline.
commands/compute/server/create.go Add --confidential, --size, --storage-type; filter --image-id completion for confidential images.
commands/compute/server/confidential_test.go Add tests for confidential server creation behavior (no cores/cpuFamily, volume attach, columns).
commands/compute/request/run_request.go Fix timeout lookup to use global viper key for persistent --timeout.
commands/compute/request/request_test.go Add regression test ensuring --timeout is honored during request wait.
commands/compute/location/location.go Add CpuEnabledFeatures output column.
commands/compute/location/cpu.go Add EnabledFeatures output column for CPU families.
commands/compute/location/confidential_test.go Add tests ensuring enabled-features columns are exposed.
commands/compute/image/upload.go Add --confidential upload mode, forced property set, FTP credential resolution, and correct timeout key.
commands/compute/image/upload_test.go Add unit tests for FTP credential selection logic.
commands/compute/image/image.go Add RequiredFeatures image output column.
commands/compute/image/confidential_test.go Add tests for confidential image property forcing and validation.
CHANGELOG.md Add release notes for Confidential Computing support and new columns.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread commands/compute/image/upload.go
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@sonarqubecloud

Copy link
Copy Markdown

@avirtopeanu-ionos
avirtopeanu-ionos merged commit acfda8e into master Jul 21, 2026
8 of 10 checks passed
@avirtopeanu-ionos
avirtopeanu-ionos deleted the feat/confidential-computing branch July 21, 2026 09:56
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

Successfully merging this pull request may close these issues.

3 participants