Cluster API Lifecycle Management
Cluster API lifecycle management for provisioning, scaling, and upgrading Kubernetes clusters. Use when managing cluster infrastructure or multi-cluster operations.
Rohit Ghumare
@rohitg00
Install
$ openclaw skills install @rohitg00/k8s-capiCluster API Lifecycle Management
Manage Kubernetes clusters using kubectl-mcp-server's Cluster API tools (11 tools).
Requires the
capitoolset: start kubectl-mcp-server with--toolsets default,capi(orMCP_TOOLSETS=default,capi).
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 | detect_ecosystem |
| 2 | Check cluster phase before operations | HIGH | capi_get_cluster |
| 3 | Monitor machines during scaling | HIGH | capi_list_machines |
| 4 | Get kubeconfig after provisioning | MEDIUM | capi_get_cluster_kubeconfig |
Quick Reference
| Task | Tool | Example |
|---|---|---|
| Detect CAPI | detect_ecosystem | detect_ecosystem() |
| List clusters | capi_list_clusters | capi_list_clusters(namespace) |
| Get cluster kubeconfig | capi_get_cluster_kubeconfig | capi_get_cluster_kubeconfig(name, namespace) |
| Scale workers | capi_scale_machinedeployment | capi_scale_machinedeployment(name, namespace, replicas) |
Check Installation
detect_ecosystem()
List Clusters
# List all CAPI clusters
capi_list_clusters(namespace="default")
# Shows:
# - Cluster name
# - Phase (Provisioning, Provisioned, Deleting)
# - Infrastructure ready
# - Control plane ready
Get Cluster Details
capi_get_cluster(name="my-cluster", namespace="default")
# Shows:
# - Spec (control plane, infrastructure)
# - Status (phase, conditions)
# - Network configuration
Get Cluster Kubeconfig
# Get kubeconfig for workload cluster
capi_get_cluster_kubeconfig(name="my-cluster", namespace="default")
# Returns kubeconfig to access the cluster
Machines
List Machines
capi_list_machines(namespace="default")
# Shows:
# - Machine name
# - Cluster
# - Phase (Running, Provisioning, Failed)
# - Provider ID
# - Version
Get Machine Details
capi_get_machine(name="my-cluster-md-0-xxx", namespace="default")
Machine Deployments
List Machine Deployments
capi_list_machinedeployments(namespace="default")
# Shows:
# - Deployment name
# - Cluster
# - Replicas (ready/total)
# - Version
Scale Machine Deployment
# Scale worker nodes
capi_scale_machinedeployment(
name="my-cluster-md-0",
namespace="default",
replicas=5
)
Machine Sets
capi_list_machinesets(namespace="default")
Machine Health Checks
capi_list_machinehealthchecks(namespace="default")
# Health checks automatically remediate unhealthy machines
Cluster Classes
# List cluster templates
capi_list_clusterclasses(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_list_clusters(namespace) # Wait for Provisioned
3. capi_get_cluster_kubeconfig(name, namespace) # Get access
Scale Workers
1. capi_list_machinedeployments(namespace)
2. capi_scale_machinedeployment(name, namespace, replicas)
3. capi_list_machines(namespace) # Monitor
Upgrade Cluster
1. # Update control plane version
2. # Update machine deployment version
3. capi_list_machines(namespace) # Monitor rollout
Troubleshooting
Cluster Stuck Provisioning
1. capi_get_cluster(name, namespace) # Check conditions
2. capi_list_machines(namespace) # Check machine status
3. kubectl_get(resource_type="events", namespace) # Check events
4. # Check infrastructure provider logs
Machine Failed
1. capi_get_machine(name, namespace)
2. kubectl_get(resource_type="events", namespace)
3. # Common issues:
# - Cloud provider quota
# - Invalid machine template
# - Network issues
Related Skills
- k8s-multicluster - Multi-cluster operations
- k8s-operations - kubectl operations
Top skills in this category
API Gateway
@byungkyuCall third-party APIs through the Maton gateway, which injects the credential for an app the user has already connected. Use this skill when the user names a connected app and a concrete action in it - read a mailbox, query a CRM, file an issue, update a spreadsheet, etc.
Marketing Mode
@thesethroseMarketing Mode combines 23 comprehensive marketing skills covering strategy, psychology, content, SEO, conversion optimization, and paid growth. Use when users need marketing strategy, copywriting, SEO help, conversion optimization, paid advertising, or any marketing tactic.
Blogwatcher
@steipeteMonitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
Marketing Skills
@jchopard69Access 23 marketing modules offering checklists, frameworks, and ready-to-use deliverables for CRO, SEO, copywriting, analytics, launches, ads, and social me...
diagram-generator
@matthewyinGenerate and edit diagrams with the mcp-diagram-generator MCP server. Use this skill for new diagrams, existing .drawio/.mmd/.excalidraw edits, network topology, architecture, flowchart, swimlane, sequence, class, ER, and Excalidraw whiteboard work. Always use this skill when the user asks to draw,