Kubernetes Skill
Comprehensive Kubernetes cluster management through native kubectl execution. This skill provides 18+ kubectl tools for managing your clusters.
When to Use
- •Managing Kubernetes resources (pods, deployments, services, configmaps, secrets)
- •Viewing pod logs and debugging containers
- •Scaling deployments up or down
- •Managing cluster configuration and contexts
- •Performing rollout operations (restart, undo, status)
- •Node management (cordon, uncordon, drain, taint)
- •Creating and deleting resources
Requirements
- •
kubectlmust be installed and in PATH - •Valid kubeconfig (default:
~/.kube/configorKUBECONFIGenv var) - •Appropriate cluster access permissions
Tools Provided
get
Get Kubernetes resources (pods, services, deployments, nodes, etc.)
Parameters:
- •
resource(required): Resource type (pods, services, deployments, nodes, namespaces, configmaps, secrets, ingress, pv, pvc, jobs, cronjobs, daemonsets, statefulsets, replicasets, events, endpoints, all) - •
name(optional): Specific resource name - •
namespace(optional): Kubernetes namespace (default: default, use 'all' for all namespaces) - •
selector(optional): Label selector (e.g., app=nginx) - •
output(optional): Output format (wide, yaml, json, name)
Example:
skill run kubernetes get resource=pods namespace=kube-system skill run kubernetes get resource=deployments output=wide skill run kubernetes get resource=nodes
describe
Show detailed information about a resource.
Parameters:
- •
resource(required): Resource type (pod, service, deployment, node, etc.) - •
name(required): Resource name - •
namespace(optional): Kubernetes namespace
Example:
skill run kubernetes describe resource=pod name=nginx-xxxxx namespace=default
logs
Get logs from a pod.
Parameters:
- •
pod(required): Pod name - •
namespace(optional): Kubernetes namespace - •
container(optional): Container name (for multi-container pods) - •
tail(optional): Number of lines to show from end - •
follow(optional): Stream logs in real-time - •
previous(optional): Show logs from previous container instance
Example:
skill run kubernetes logs pod=nginx-xxxxx namespace=default tail=100
exec
Execute a command in a container.
Parameters:
- •
pod(required): Pod name - •
namespace(optional): Kubernetes namespace - •
container(optional): Container name - •
command(required): Command to execute
Example:
skill run kubernetes exec pod=nginx-xxxxx command="ls -la /var/log"
apply
Apply a configuration from YAML/JSON content.
Parameters:
- •
content(required): YAML or JSON content to apply - •
namespace(optional): Kubernetes namespace - •
dry_run(optional): Run in dry-run mode
Example:
skill run kubernetes apply content="apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: test-config\ndata:\n key: value"
delete
Delete Kubernetes resources.
Parameters:
- •
resource(required): Resource type - •
name(required): Resource name - •
namespace(optional): Kubernetes namespace - •
force(optional): Force deletion - •
grace_period(optional): Grace period in seconds
Example:
skill run kubernetes delete resource=pod name=nginx-xxxxx namespace=default skill run kubernetes delete resource=namespace name=test-namespace
scale
Scale a deployment, replicaset, or statefulset.
Parameters:
- •
resource(required): Resource type (deployment, replicaset, statefulset) - •
name(required): Resource name - •
namespace(optional): Kubernetes namespace - •
replicas(required): Desired replica count
Example:
skill run kubernetes scale resource=deployment name=nginx namespace=default replicas=3
rollout
Manage rollouts for deployments.
Parameters:
- •
resource(required): Resource type (deployment, daemonset, statefulset) - •
name(required): Resource name - •
namespace(optional): Kubernetes namespace - •
action(required): Rollout action (status, history, undo, restart, pause, resume)
Example:
skill run kubernetes rollout resource=deployment name=nginx action=status skill run kubernetes rollout resource=deployment name=nginx action=restart
top
Display resource usage (CPU/memory).
Parameters:
- •
resource(required): Resource type (pods, nodes) - •
namespace(optional): Kubernetes namespace - •
containers(optional): Show container-level metrics
Example:
skill run kubernetes top resource=pods namespace=default skill run kubernetes top resource=nodes
cluster-info
Display cluster information.
Example:
skill run kubernetes cluster-info
config
Manage kubeconfig (view, current-context, get-contexts, use-context).
Parameters:
- •
action(required): Config action (view, current-context, get-contexts, use-context) - •
context(optional): Context name (for use-context)
Example:
skill run kubernetes config action=view skill run kubernetes config action=current-context skill run kubernetes config action=use-context context=minikube
create
Create resources (namespace, secret, configmap, deployment, service).
Parameters:
- •
resource(required): Resource type - •
name(required): Resource name - •
namespace(optional): Kubernetes namespace - •
from_literal(optional): Key=value pairs for configmap/secret - •
image(optional): Container image (for deployment) - •
port(optional): Port number - •
type(optional): Secret type or Service type
Example:
skill run kubernetes create resource=namespace name=test-namespace skill run kubernetes create resource=deployment name=nginx namespace=test image=nginx:latest port=80 skill run kubernetes create resource=configmap name=myconfig namespace=default from_literal="key1=value1,key2=value2"
label
Add or update labels on resources.
Parameters:
- •
resource(required): Resource type - •
name(required): Resource name - •
namespace(optional): Kubernetes namespace - •
labels(required): Comma-separated key=value pairs
Example:
skill run kubernetes label resource=deployment name=nginx namespace=default labels="env=prod,tier=frontend"
annotate
Add or update annotations on resources.
Parameters:
- •
resource(required): Resource type - •
name(required): Resource name - •
namespace(optional): Kubernetes namespace - •
annotations(required): Comma-separated key=value pairs
Example:
skill run kubernetes annotate resource=deployment name=nginx namespace=default annotations="description=Web server"
cordon
Mark a node as unschedulable.
Parameters:
- •
node(required): Node name
Example:
skill run kubernetes cordon node=worker-node-1
uncordon
Mark a node as schedulable.
Parameters:
- •
node(required): Node name
Example:
skill run kubernetes uncordon node=worker-node-1
drain
Drain a node for maintenance.
Parameters:
- •
node(required): Node name - •
ignore_daemonsets(optional): Ignore DaemonSet pods - •
delete_emptydir_data(optional): Delete pods using emptyDir - •
force(optional): Force drain
Example:
skill run kubernetes drain node=worker-node-1 ignore_daemonsets=true
taint
Add a taint to a node.
Parameters:
- •
node(required): Node name - •
taint(required): Taint in key=value:effect format
Example:
skill run kubernetes taint node=worker-node-1 taint="dedicated=gpu:NoSchedule"
raw
Execute any kubectl command directly.
Parameters:
- •
args(required): Raw kubectl arguments
Example:
skill run kubernetes raw args="version --client" skill run kubernetes raw args="api-resources" skill run kubernetes raw args="get pods -A -o wide"
Configuration
This skill uses your existing kubectl configuration. No additional configuration is required.
To use a specific kubeconfig:
export KUBECONFIG=/path/to/kubeconfig
Or configure in .skill-engine.toml:
[skills.kubernetes.instances.prod]
config.kubeconfig = "${KUBECONFIG:-~/.kube/config}"
Security Notes
- •This skill executes real kubectl commands against your cluster
- •Commands are validated against an allowlist (kubectl, helm, etc.)
- •Ensure your kubeconfig has appropriate permissions
- •Be cautious with delete and drain operations