Install
openclaw skills install eks-workload-best-practice-assessmentUse when assessing or reviewing Kubernetes workloads running on Amazon EKS for best practice compliance, including pod configuration, security posture, observability, networking, storage, image security, and CI/CD practices. Requires kubectl and awscli access to the target cluster. Triggers on "assess my EKS workloads", "check k8s best practices", "assess container workloads", "evaluate pod security", "workload compliance check", "EKS workload assessment", "检查 K8s 工作负载", "评估容器最佳实践", "审计 EKS 应用", "检查 Pod 配置", "容器安全评估", "工作负载合规检查".
openclaw skills install eks-workload-best-practice-assessmentAssess Kubernetes workloads on Amazon EKS against best practices from K8s official documentation and the EKS Best Practices Guide. Covers 8 dimensions: workload configuration, security, observability, networking, storage, EKS platform integration, CI/CD, and image security.
This skill requires:
aws___search_documentation — search AWS documentationaws___read_documentation — read full documentation pagesaws___recommend — get related documentationcontext7_resolve-library-id — resolve K8s library IDcontext7_query-docs — query K8s documentationaws) — configured with read access to the target EKS cluster and ECRThis skill focuses on workload-level checks — items that require kubectl or in-cluster
inspection. It complements aws-best-practice-research which covers the infrastructure layer
(control plane, node groups, addons, etc.).
| This Skill (Workload Layer) | aws-best-practice-research (Infra Layer) |
|---|---|
| Pod resource requests/limits | Control plane configuration |
| Probes (liveness/readiness/startup) | Node group sizing and AZ distribution |
| PDB, topology constraints | Addon versions |
| Pod security context, PSA | Secrets envelope encryption |
| Network Policies | Cluster networking (VPC, subnets) |
| Service Accounts, RBAC | Authentication mode, Access Entries |
| Container image scanning | GuardDuty EKS protection |
| HPA/VPA/Karpenter workload config | Karpenter/CA infrastructure config |
Determine from user input:
kube-system, kube-public, kube-node-lease by default)aws-best-practice-research for
the EKS infrastructure layer and merge results (default: yes)If the user provides only a cluster name, default to full cluster assessment.
Run the following commands to detect the environment:
# Cluster info via AWS CLI
aws eks describe-cluster --name {CLUSTER} --region {REGION}
# K8s version
kubectl version --output=json
# Node distribution
kubectl get nodes -o wide --no-headers
Record:
Version-aware filtering rules (apply in Step 3):
Research the latest best practices using context7 and aws-knowledge-mcp-server. Run all queries sequentially (one at a time) to avoid rate limiting.
For each of the 8 assessment dimensions, execute the search queries defined in
references/search-queries.md. The general flow per dimension is:
/websites/kubernetes_io) for K8s official best practicesAfter all research is complete, merge results with the baseline framework in
references/check-dimensions.md to ensure no critical dimension is missed.
Apply version-aware filtering from Step 2 to remove inapplicable items and add version-specific recommendations.
Rate limit protection: If any MCP request returns "Too many requests", wait 5 seconds and retry once. If it fails again, skip and continue. Sequential execution is mandatory.
If infrastructure layer assessment is included (default: yes):
aws-best-practice-research skill for the EKS clusterIf the user opts out, skip this step.
Collect workload configurations using kubectl. Independent commands can run in parallel
(they are not subject to MCP rate limits).
See references/kubectl-assessment-commands.md for the complete command list. Key data to collect:
# Core workloads
kubectl get deployments,statefulsets,daemonsets,jobs,cronjobs --all-namespaces -o json
# Pod specifications (within workloads above)
# Already included in the -o json output
# Disruption and scaling
kubectl get pdb,hpa --all-namespaces -o json
# Networking
kubectl get networkpolicies,services,ingresses --all-namespaces -o json
# Security
kubectl get serviceaccounts --all-namespaces -o json
kubectl get clusterrolebindings,rolebindings -o json
# Storage
kubectl get pvc,storageclass -o json
# Namespace labels (for PSA)
kubectl get namespaces -o json
# Events (recent issues)
kubectl get events --all-namespaces --sort-by='.lastTimestamp' -o json
For ECR image scanning (if images are from ECR):
# For each unique ECR image found in workloads
aws ecr describe-image-scan-findings --repository-name {REPO} --image-id imageTag={TAG}
aws ecr describe-repositories --repository-names {REPO}
aws ecr get-lifecycle-policy --repository-name {REPO}
Filter collected data to the assessment scope (namespaces/workloads from Step 1).
For each check item from the research phase (Step 3), evaluate every in-scope workload:
| Status | Meaning |
|---|---|
| PASS | The workload configuration meets or exceeds the recommendation |
| FAIL | The workload configuration does not meet the recommendation |
| WARN | Cannot be fully verified, or partially meets the recommendation |
| N/A | The check does not apply (e.g., storage checks for stateless workloads) |
For each finding, record:
Generate a single comprehensive report using the template in references/output-template.md
and write it directly to a local markdown file.
IMPORTANT — File Writing Rules:
Use the following file naming convention:
TIMESTAMP=$(TZ=Asia/Shanghai date +%Y-%m-%d-%H-%M-%S)
CLUSTER_SLUG=$(echo "{CLUSTER_NAME}" | tr '[:upper:]' '[:lower:]' | tr ' :/' '-')
Assessment Report — see references/output-template.md
${TIMESTAMP}-${CLUSTER_SLUG}-assessment-report.mdIf infrastructure layer results exist from Step 4, merge them into the report.
After saving, print a brief summary to the terminal listing only:
After saving the reports, offer:
For Critical Issues (FAIL + High priority), provide:
resources.requests.memory: not set — container has no memory request"
Bad: "Memory request missing"kube-system, kube-public, kube-node-lease
unless the user explicitly includes them.aws-best-practice-research.
This skill handles ONLY what requires kubectl/in-cluster access.