Skip to content

Conversation

@rluisr
Copy link

@rluisr rluisr commented Nov 14, 2025

what

  • Added automatic detection for Hyperdisk-only machine families (C4D, H4D, X4, M4, A3 Ultra, A3 Mega)
  • When Hyperdisk-only machine types are detected, both boot and persistent disks automatically default to hyperdisk-balanced
  • Added new boot_disk_type variable to allow explicit override of boot disk type
  • Added validation to persistent_disk_type to prevent using pd-* disk types with Hyperdisk-only machines
  • Added validation to machine_type to prevent using ARM64 machine types (C4A, A4X, A4, T2A, T2D)
  • Updated README.md with new "Hyperdisk Support" section and FAQ entry
  • Updated variable documentation to reflect Hyperdisk requirements
  • Updated documentation to clarify that ARM64 machine types are not supported

why

  • Google Cloud requires Hyperdisk storage for specific machine series (C4D, H4D, X4, M4, A3 Ultra, A3 Mega)
  • Without this change, users attempting to use these machine types would encounter deployment errors due to incompatible disk types
  • Automatic detection eliminates the need for manual disk type configuration while still allowing overrides when needed
  • Validation helps catch configuration errors early in the Terraform plan phase rather than during apply
  • ARM64 machine types (C4A, A4X, A4, T2A, T2D) are not supported because Atlantis does not run on ARM64 architecture
  • Even though some ARM64 machine types require Hyperdisk, they cannot be used with this module due to Atlantis' x86-64 requirement
  • This enhancement makes the module more user-friendly and prevents common configuration mistakes

references

  • This change is based on Google Cloud's Hyperdisk requirements for newer machine families
  • Related documentation: https://cloud.google.com/compute/docs/disks/hyperdisks
  • Addresses the requirement that certain machine types cannot use traditional persistent disks (pd-standard, pd-ssd, pd-balanced)
  • Note: ARM64 + Hyperdisk combinations remain unsupported due to Atlantis architecture requirements

@rluisr rluisr requested a review from a team as a code owner November 14, 2025 16:12
@github-actions github-actions bot added the documentation Improvements or additions to documentation label Nov 14, 2025
@rluisr rluisr force-pushed the feature/hyperdisk-support branch from 12165bc to 984a698 Compare November 14, 2025 16:17
@rluisr
Copy link
Author

rluisr commented Nov 14, 2025

This PR needs to be marked as breaking change (since you can't go from n2 -> c4a).
スクリーンショット 2025-11-15 午前1 32 13

@rluisr rluisr marked this pull request as draft November 14, 2025 17:17
@rluisr
Copy link
Author

rluisr commented Nov 15, 2025

I couldn't boot into COS on ARM.
Anyone with expertise, please try deploying Atlantis and investigating the issue as follows:

module "atlantis" {
  #source       = "runatlantis/atlantis/gce"
  source               = "git::https://github.com/rluisr/terraform-gce-atlantis.git?ref=feature/hyperdisk-support"
  name                 = "atlantis"
  image                = "ghcr.io/runatlantis/atlantis:v0.34.0"
  domain               = local.atlantis_domain
  project              = data.google_project.project.project_id
  network              = data.google_compute_network.default.id
  subnetwork           = data.google_compute_subnetwork.default.id
  region               = "asia-northeast1"
  zone                 = "asia-northeast1-b"
  machine_type         = "c4a-highcpu-4"
  persistent_disk_type = "hyperdisk-balanced"
}

@rluisr
Copy link
Author

rluisr commented Nov 15, 2025

x86/64 machine + hyperdisk is working perfectly.

@rluisr rluisr marked this pull request as ready for review November 15, 2025 08:53
This commit adds automatic detection and support for Hyperdisk-only machine types
(C4A, C4D, H4D, X4, M4, A4X, A4, A3 Ultra, A3 Mega). The module now automatically
switches to hyperdisk-balanced for both boot and persistent disks when these machine
types are detected, while still allowing explicit overrides via the new boot_disk_type
variable and existing persistent_disk_type variable.

Changes:
- Added automatic detection for Hyperdisk-only machine families
- Added boot_disk_type variable for boot disk type override
- Added validation to prevent pd-* disks on Hyperdisk-only machines
- Added examples/c4a-machine with complete C4A configuration
- Updated documentation with Hyperdisk support section and FAQ

Signed-off-by: rluisr <[email protected]>
@rluisr rluisr force-pushed the feature/hyperdisk-support branch from d53ad87 to 6b0972f Compare November 15, 2025 08:58
@rluisr
Copy link
Author

rluisr commented Nov 18, 2025

hi @Zurvarian, can you take a look? Let me know if you have any suggestions and whether this works for you 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant