install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/rohitg00/kubectl-mcp-server/k8s-capi" ~/.claude/skills/comeonoliver-skillshub-k8s-capi && rm -rf "$T"
manifest:
skills/rohitg00/kubectl-mcp-server/k8s-capi/SKILL.mdsource content
Cluster API Lifecycle Management
Manage Kubernetes clusters using kubectl-mcp-server's Cluster API tools (11 tools).
When to Apply
Use this skill when:
- User mentions: "Cluster API", "CAPI", "cluster lifecycle", "machine", "workload cluster"
- Operations: provisioning clusters, scaling nodes, upgrading Kubernetes versions
- Keywords: "provision cluster", "scale workers", "machine deployment", "cluster class"
Priority Rules
| Priority | Rule | Impact | Tools |
|---|---|---|---|
| 1 | Detect CAPI installation first | CRITICAL | |
| 2 | Check cluster phase before operations | HIGH | |
| 3 | Monitor machines during scaling | HIGH | |
| 4 | Get kubeconfig after provisioning | MEDIUM | |
Quick Reference
| Task | Tool | Example |
|---|---|---|
| Detect CAPI | | |
| List clusters | | |
| Get cluster kubeconfig | | |
| Scale workers | | |
Check Installation
capi_detect_tool()
List Clusters
# List all CAPI clusters capi_clusters_list_tool(namespace="default") # Shows: # - Cluster name # - Phase (Provisioning, Provisioned, Deleting) # - Infrastructure ready # - Control plane ready
Get Cluster Details
capi_cluster_get_tool(name="my-cluster", namespace="default") # Shows: # - Spec (control plane, infrastructure) # - Status (phase, conditions) # - Network configuration
Get Cluster Kubeconfig
# Get kubeconfig for workload cluster capi_cluster_kubeconfig_tool(name="my-cluster", namespace="default") # Returns kubeconfig to access the cluster
Machines
List Machines
capi_machines_list_tool(namespace="default") # Shows: # - Machine name # - Cluster # - Phase (Running, Provisioning, Failed) # - Provider ID # - Version
Get Machine Details
capi_machine_get_tool(name="my-cluster-md-0-xxx", namespace="default")
Machine Deployments
List Machine Deployments
capi_machinedeployments_list_tool(namespace="default") # Shows: # - Deployment name # - Cluster # - Replicas (ready/total) # - Version
Scale Machine Deployment
# Scale worker nodes capi_machinedeployment_scale_tool( name="my-cluster-md-0", namespace="default", replicas=5 )
Machine Sets
capi_machinesets_list_tool(namespace="default")
Machine Health Checks
capi_machinehealthchecks_list_tool(namespace="default") # Health checks automatically remediate unhealthy machines
Cluster Classes
# List cluster templates capi_clusterclasses_list_tool(namespace="default") # ClusterClasses define reusable cluster configurations
Create Cluster
kubectl_apply(manifest=""" apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: name: my-cluster namespace: default spec: clusterNetwork: pods: cidrBlocks: - 192.168.0.0/16 services: cidrBlocks: - 10.96.0.0/12 controlPlaneRef: apiVersion: controlplane.cluster.x-k8s.io/v1beta1 kind: KubeadmControlPlane name: my-cluster-control-plane infrastructureRef: apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: AWSCluster name: my-cluster """)
Create Machine Deployment
kubectl_apply(manifest=""" apiVersion: cluster.x-k8s.io/v1beta1 kind: MachineDeployment metadata: name: my-cluster-md-0 namespace: default spec: clusterName: my-cluster replicas: 3 selector: matchLabels: cluster.x-k8s.io/cluster-name: my-cluster template: spec: clusterName: my-cluster version: v1.28.0 bootstrap: configRef: apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 kind: KubeadmConfigTemplate name: my-cluster-md-0 infrastructureRef: apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: AWSMachineTemplate name: my-cluster-md-0 """)
Cluster Lifecycle Workflows
Provision New Cluster
1. kubectl_apply(cluster_manifest) 2. capi_clusters_list_tool(namespace) # Wait for Provisioned 3. capi_cluster_kubeconfig_tool(name, namespace) # Get access
Scale Workers
1. capi_machinedeployments_list_tool(namespace) 2. capi_machinedeployment_scale_tool(name, namespace, replicas) 3. capi_machines_list_tool(namespace) # Monitor
Upgrade Cluster
1. # Update control plane version 2. # Update machine deployment version 3. capi_machines_list_tool(namespace) # Monitor rollout
Troubleshooting
Cluster Stuck Provisioning
1. capi_cluster_get_tool(name, namespace) # Check conditions 2. capi_machines_list_tool(namespace) # Check machine status 3. get_events(namespace) # Check events 4. # Check infrastructure provider logs
Machine Failed
1. capi_machine_get_tool(name, namespace) 2. get_events(namespace) 3. # Common issues: # - Cloud provider quota # - Invalid machine template # - Network issues
Related Skills
- k8s-multicluster - Multi-cluster operations
- k8s-operations - kubectl operations