Help improve this page
To contribute to this user guide, choose the Edit this page on GitHub link that is located in the right pane of every page.
Capability Kubernetes resources
After you enable a capability on your cluster, you will most often interact with it by creating and managing Kubernetes custom resources in your cluster. Each capability provides its own set of custom resource definitions (CRDs) that extend the Kubernetes API with capability-specific functionality.
Argo CD resources
When you enable the Argo CD capability, you can create and manage the following Kubernetes resources:
- Application
-
Defines a deployment from a Git repository to a target cluster.
Applicationresources specify the source repository, target namespace, and sync policy. You can create up to 1000Applicationresources per Argo CD capability instance. - ApplicationSet
-
Generates multiple
Applicationresources from templates, enabling multi-cluster and multi-environment deployments.ApplicationSetresources use generators to createApplicationresources dynamically based on cluster lists, Git directories, or other sources. - AppProject
-
Provides logical grouping and access control for
Applicationresources.AppProjectresources define which repositories, clusters, and namespacesApplicationresources can use, enabling multi-tenancy and security boundaries.
Example Application resource:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app namespace: argocd spec: project: default source: repoURL: https://github.com/org/repo targetRevision: main path: manifests destination: server: https://kubernetes.default.svc namespace: production
For more information about Argo CD resources and concepts, see Argo CD concepts.
kro resources
When you enable the kro capability, you can create and manage the following Kubernetes resources:
- ResourceGraphDefinition (RGD)
-
Defines a custom API that composes multiple Kubernetes and AWS resources into a higher-level abstraction. Platform teams create
ResourceGraphDefinitionresources to provide reusable patterns with guardrails. - Custom resource instances
-
After creating a
ResourceGraphDefinitionresource, you can create instances of the custom API defined by theResourceGraphDefinition. kro automatically creates and manages the resources specified in theResourceGraphDefinition.
Example ResourceGraphDefinition resource:
apiVersion: kro.run/v1alpha1 kind: ResourceGraphDefinition metadata: name: web-application spec: schema: apiVersion: v1alpha1 kind: WebApplication spec: name: string replicas: integer resources: - id: deployment template: apiVersion: apps/v1 kind: Deployment # ... deployment spec - id: service template: apiVersion: v1 kind: Service # ... service spec
Example WebApplication instance:
apiVersion: v1alpha1 kind: WebApplication metadata: name: my-web-app namespace: default spec: name: my-web-app replicas: 3
When you apply this instance, kro automatically creates the Deployment and Service resources defined in the ResourceGraphDefinition.
For more information about kro resources and concepts, see kro concepts.
ACK resources
When you enable the ACK capability, you can create and manage AWS resources using Kubernetes custom resources. ACK provides over 200 CRDs for more than 50 AWS services, allowing you to define AWS resources alongside your Kubernetes workloads, and manage dedicated AWS infrastructure resources with Kubernetes.
Examples of ACK resources:
- S3 Bucket
-
Bucketresources create and manage Amazon S3 buckets with versioning, encryption, and lifecycle policies. - RDS DBInstance
-
DBInstanceresources provision and manage Amazon RDS database instances with automated backups and maintenance windows. - DynamoDB Table
-
Tableresources create and manage DynamoDB tables with provisioned or on-demand capacity. - IAM Role
-
Roleresources define IAM roles with trust policies and permission policies for AWS service access. - Lambda Function
-
Functionresources create and manage Lambda functions with code, runtime, and execution role configuration.
Example specification of a Bucket resource:
apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-app-bucket spec: name: my-unique-bucket-name-12345 versioning: status: Enabled encryption: rules: - applyServerSideEncryptionByDefault: sseAlgorithm: AES256
For more information about ACK resources and concepts, see ACK concepts.
Resource limits
EKS Capabilities have the following resource limits:
Argo CD usage limits:
-
Maximum 1000
Applicationresources per Argo CD capability instance -
Maximum 100 remote clusters configured per Argo CD capability instance
Resource configuration limits:
-
Maximum 64 Kubernetes resources per
Applicationresource in Argo CD -
Maximum 64 Kubernetes resources per
ResourceGraphDefinitionin kro
Note
These limits apply to the number of resources managed by each capability instance. If you need higher limits, you can deploy capabilities across multiple clusters.
Next steps
For capability-specific tasks and advanced configuration, see the following topics:
-
ACK concepts – Understand ACK concepts and resource lifecycle
-
Working with Argo CD – Working with Argo CD capabilities for GitOps workflows
-
kro concepts – Understand kro concepts and resource composition