Skip to content
English
  • There are no suggestions because the search field is empty.

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:

  1. Register the cluster with one of the supported sizes (e.g., CLUSTER_SIZE_LARGE).

  2. Patch workloads with custom resources using kustomization.patches.

  3. 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 inside kustomization if scaling beyond defaults is required.

References