Skip to content

[FEATURE] Add Sizing Contract for --component based sizing (kustomize) #3168

Description

Defines which sizing fields exist, where they are set, and how a field is left to another owner such as a HorizontalPodAutoscaler.

Owner: sizing workstream (#3165). Consumers: kustomize release workstream (#3169), Helm workstream (#3170), GKE workstream (ai-on-gke/substrate-gke#70).

Spec:

  • Fields: spec.replicas (not for the DaemonSet), each listed container's resources, and the PodDisruptionBudget's minAvailable or maxUnavailable.
  • Base manifests set none of these fields.
    • components/sizing-default sets today's values
    • components/sizing-large replaces the large-cluster profile.
    • Operators may provide a custom size configuration and use that as a --component parameter.
  • Unmanaged fields. A field that no applied sizing input sets is not rendered, so another manager can own it. Proposed: replicas and resources may be unmanaged; disruption budgets are always set by the install.

Workloads

Workload Kind Namespace Containers sized Disruption budget
ate-api-server Deployment ate-system ate-api-server, objectstore-plugin Yes
ate-idp-server Deployment ate-system ate-idp-server Yes
ate-controller Deployment ate-system ate-controller No
atelet DaemonSet ate-system atelet, objectstore-plugin No
atenet-router Deployment ate-system atenet-router, envoy No (#645)
atenet-egress Deployment ate-system envoy, ext-proc, sdsmint No
podcertificate-controller Deployment podcertificate-controller-system controller No
postgres StatefulSet ate-system postgres, tls-reloader No

Stability. Changing a default value in sizing-default or sizing-large needs a release note, because running clusters change on upgrade.

Enforcement

Related: #2579 (request), PR #3179 (implementation), PR #3030 (adds a size100 Go profile, which conflicts with moving profiles into Components).

Parent Issue: #3160

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions