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/v1alpha1
kind: Cluster
metadata:
name: custom-sized-agent
namespace: akuity
spec:
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
-
size
cannot be set to arbitrary values (e.g., "xlarge"). It only supports the predefined enum. -
Customizations must be done via
kustomization
patches. -
Ensure you reapply patches if you upgrade or re-register clusters.
-
Use
replicas
field insidekustomization
if scaling beyond defaults is required.