Skip to content

Feature Request: ARM64 (aarch64) Container Image Support #76

@holyshipt

Description

@holyshipt

Feature Request: ARM64 (aarch64) Container Image Support

Problem Statement

The current gcr.io/trafficdirector-prod/td-grpc-bootstrap container images (versions 0.16.0, 0.17.0, 0.18.0) only support linux/amd64 architecture. This prevents users from running Traffic Director-enabled workloads on ARM64 nodes, such as:

  • GKE Autopilot with Arm-based workloads
  • GKE Standard clusters with C4A (Axion) or N4A (Ampere Altra) machine types
  • Cost optimization initiatives leveraging ARM64's ~50% lower compute costs

Current Behavior

When attempting to run the init container on ARM64 nodes:

exec /td-grpc-bootstrap: exec format error

Example deployment configuration:

initContainers:
- name: grpc-td-init
  image: gcr.io/trafficdirector-prod/td-grpc-bootstrap:0.18.0
  # Fails on arm64 nodes with exec format error

Expected Behavior

The td-grpc-bootstrap image should be published as a multi-architecture image supporting both:

  • linux/amd64
  • linux/arm64

This would allow Kubernetes to automatically pull the correct architecture based on the node type.

Use Case

We are migrating GKE workloads to ARM64 (C4A/N4A) instances for cost reduction. Our services use Traffic Director for service mesh capabilities, but the migration is blocked because the bootstrap init container cannot run on ARM64 nodes.

Proposed Solution

  1. Build td-grpc-bootstrap for both amd64 and arm64 architectures
  2. Publish as a multi-arch Docker manifest
  3. Ensure future releases include both architectures

Additional Context

  • GKE machine types using ARM64: C4A (Axion), N4A (Ampere Altra)
  • Many GCP customers are adopting ARM64 for cost savings
  • Other GCP tools already support multi-arch (e.g., many Cloud SDK containers)

Workaround Attempts

Currently, there is no viable workaround besides:

  • Staying on x86 nodes (missing out on cost savings)
  • Not using Traffic Director (requires architecture changes)

Would appreciate any timeline or roadmap information for ARM64 support.


Environment:

  • GKE Version: 1.33+
  • td-grpc-bootstrap versions tested: 0.16.0, 0.17.0, 0.18.0
  • Node architecture: arm64 (C4A, N4A)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions