Skip to content

Optimize SDK sidecar Go runtime defaults for unbounded Kubernetes pods #4568

@mnthe

Description

@mnthe

Problem

The Agones SDK sidecar can run without explicit CPU or memory limits. In those environments, language runtimes may size scheduler parallelism or memory behavior from host/node-visible resources rather than the small amount of resources the sidecar is expected to use.

This can be more visible on Windows process-isolated containers, where CPU limits are enforced by HCS/Job Objects but may not be reflected as a reduced logical CPU count inside the runtime.

Proposed Approach

Use the SDK sidecar's requested resources as runtime resource hints:

  • CPU: derive the runtime CPU allocation hint from the sidecar CPU request.
  • Memory: derive the runtime memory allocation hint from the sidecar memory request.
  • If a request is not configured, do not provide an additional runtime hint for that resource.

This should not change Kubernetes resource requests or limits. It should only help the SDK sidecar runtime align its internal scheduling and memory behavior with the resources Agones asks Kubernetes to reserve for it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions