EKS Provider
EKS provider integrates with AWS EKS and let you interatct with kubernetes clusters hosted on EKS.
Authentication
This provider requires authentication.
- region: AWS region where the EKS cluster is located (required: True, sensitive: False)
- cluster_name: Name of the EKS cluster (required: True, sensitive: False)
- access_key: AWS access key (Leave empty if using IAM role at EC2) (required: False, sensitive: True)
- secret_access_key: AWS secret access key (Leave empty if using IAM role at EC2) (required: False, sensitive: True)
Certain scopes may be required to perform specific actions or queries via the provider. Below is a summary of relevant scopes and their use cases:
- eks:DescribeCluster: Required to get cluster information (mandatory) (Documentation)
- eks:ListClusters: Required to list available clusters (mandatory) (Documentation)
- pods:delete: Required to delete/restart pods (Documentation)
- deployments:scale: Required to scale deployments (Documentation)
- pods:list: Required to list pods (Documentation)
- pods:get: Required to get pod details (Documentation)
- pods:logs: Required to get pod logs (Documentation)
In workflows
This provider can be used in workflows.
As “step” to query data, example:
Check the following workflow examples:
Provider Methods
The provider exposes the following Provider Methods. They are available in the AI Assistant.
-
get_pods List all pods in a namespace or across all namespaces (view, scopes: pods:list, pods:get)
namespace
: The namespace to list pods from. If None, lists pods from all namespaces.
-
get_pvc List all PVCs in a namespace or across all namespaces (view, scopes: pods:list)
namespace
: The namespace to list pods from. If None, lists pods from all namespaces.
-
get_node_pressure Get pressure metrics for all nodes (view, scopes: pods:list)
-
exec_command Execute a command in a pod (action, scopes: pods:exec)
namespace
: Namespace of the podpod_name
: Name of the podcommand
: Command to execute (string or array)container
: Name of the container (optional, defaults to first container)
-
restart_pod Restart a pod by deleting it (action, scopes: pods:delete)
namespace
: Namespace of the podpod_name
: Name of the pod
-
get_deployment Get deployment information (view, scopes: pods:list)
deployment_name
: Name of the deployment to getnamespace
: Target namespace (defaults to “default”)
-
scale_deployment Scale a deployment to specified replicas (action, scopes: deployments:scale)
deployment_name
: Name of the deployment to getnamespace
: Target namespace (defaults to “default”)replicas
: Number of replicas to scale to
-
get_pod_logs Get logs from a pod (view, scopes: pods:logs)
namespace
: Namespace of the podpod_name
: Name of the podcontainer
: Name of the container (optional)tail_lines
: Number of lines to fetch from the end of logs (default: 100)
Connecting with the Provider
To connect to Amazon EKS, follow these steps:
-
Log in to your AWS Console
-
Create an IAM user with EKS permissions:
- Attach required policies:
- Create access keys
You should get:
The AccessKeyId
is your access_key
and SecretAccessKey
is your secret_access_key
.
- Note your cluster name and region from the EKS console or using:
Required Permissions
The AWS IAM user needs these permissions:
- eks:DescribeCluster
- eks:ListClusters
Additional permissions for specific operations:
- eks:AccessKubernetesApi for pod/deployment operations
- eks:UpdateCluster for scaling operations
Command | AWS IAM Permissions |
---|---|
get_pods | eks:DescribeCluster eks:AccessKubernetesApi |
get_pvc | eks:DescribeCluster eks:AccessKubernetesApi |
get_node_pressure | eks:DescribeCluster eks:AccessKubernetesApi |
get_deployment | eks:DescribeCluster eks:AccessKubernetesApi |
scale_deployment | eks:DescribeCluster eks:AccessKubernetesApi |
exec_command | eks:DescribeCluster eks:AccessKubernetesApi |
restart_pod | eks:DescribeCluster eks:AccessKubernetesApi |
get_pod_logs | eks:DescribeCluster eks:AccessKubernetesApi |