Configuring Custom Agent Resource Sizes in Akuity
How to override default cluster size settings and allocate higher resources for repo-server or controller
When registering clusters via the Akuity API (/api/v1/orgs/{organizationId}/argocd/instances/{instanceId}/clusters), the only supported size values are:
-
CLUSTER_SIZE_UNSPECIFIED -
CLUSTER_SIZE_SMALL -
CLUSTER_SIZE_MEDIUM -
CLUSTER_SIZE_LARGE -
CLUSTER_SIZE_AUTO
However, some workloads (e.g., large repo-server bootstraps) require more memory or CPU than the predefined sizes allow. For example, increasing the repo-server to 6Gi memory during cluster bootstrap.
Although the size field itself only accepts the fixed enum values, you can override the default pod resource allocations using the kustomization section in the Cluster spec.
The flow is:
-
Register the cluster with one of the supported sizes (e.g.,
CLUSTER_SIZE_LARGE). -
Patch workloads with custom resources using
kustomization.patches. -
Optionally, tune replica counts via
kustomization.replicas.
Example Cluster YAML with Custom Repo-Server Size
apiVersion: argocd.akuity.io/v1alpha1kind: Clustermetadata: name: custom-sized-agent namespace: akuityspec: data: size: large targetVersion: 0.5.59 appReplication: false multiClusterK8sDashboardEnabled: true redisTunneling: false kustomization: patches: # Application Controller override - patch: | apiVersion: apps/v1 kind: Deployment metadata: name: argocd-application-controller spec: template: spec: containers: - name: argocd-application-controller resources: requests: cpu: 2000m memory: 4Gi limits: memory: 4Gi - name: syncer resources: requests: cpu: 2000m memory: 4Gi limits: memory: 4Gi target: kind: Deployment name: argocd-application-controller # Repo-Server override - patch: | apiVersion: apps/v1 kind: Deployment metadata: name: argocd-repo-server spec: template: spec: containers: - name: argocd-repo-server resources: requests: cpu: 1000m memory: 6Gi limits: memory: 6Gi target: kind: Deployment name: argocd-repo-server replicas: - name: argocd-repo-server count: 3
API Response Example
When querying the cluster (GET /api/v1/orgs/{organizationId}/argocd/instances/{instanceId}/clusters/{id}), you should see your custom patches reflected under kustomization.patches, even though the top-level size remains CLUSTER_SIZE_LARGE.
"repoServer": { "resourceMaximum": { "mem": "6.00Gi", "cpu": "4" }, "replicaMaximum": 10, "replicaMinimum": 1}
This confirms that the custom resource limits were applied successfully.
Key Notes
-
sizecannot be set to arbitrary values (e.g., "xlarge"). It only supports the predefined enum. -
Customizations must be done via
kustomizationpatches. -
Ensure you reapply patches if you upgrade or re-register clusters.
-
Use
replicasfield insidekustomizationif scaling beyond defaults is required.