kcli-cluster-deployment

kcli Cluster Deployment

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "kcli-cluster-deployment" with this command: npx skills add karmab/kcli/karmab-kcli-kcli-cluster-deployment

kcli Cluster Deployment

Supported Cluster Types

Type Description Module

openshift

Red Hat OpenShift (IPI/UPI) kvirt/cluster/openshift/

okd

Community OpenShift Same as openshift

hypershift

OpenShift Hosted Control Planes kvirt/cluster/hypershift/

microshift

Lightweight edge OpenShift kvirt/cluster/microshift/

generic

Generic Kubernetes (alias: kubernetes ) kvirt/cluster/kubernetes/

kubeadm

Standard Kubernetes via kubeadm kvirt/cluster/kubeadm/

k3s

Lightweight Kubernetes kvirt/cluster/k3s/

rke2

Rancher Kubernetes Engine 2 kvirt/cluster/rke2/

aks

Azure Kubernetes Service kvirt/cluster/aks/

eks

Amazon Elastic Kubernetes kvirt/cluster/eks/

gke

Google Kubernetes Engine kvirt/cluster/gke/

Basic Cluster Commands

Create cluster

kcli create kube <type> <clustername>

Create with parameters

kcli create kube openshift -P ctlplanes=3 -P workers=2 mycluster

List clusters

kcli list kube

Get cluster info

kcli info kube mycluster

Delete cluster

kcli delete kube mycluster

Scale cluster

kcli scale kube <type> -P workers=5 mycluster

Get kubeconfig

kcli get kubeconfig mycluster

OpenShift Deployment

Minimal Example

kcli create kube openshift -P pull_secret=~/pull-secret.json mycluster

Key Parameters

Required

pull_secret: ~/pull-secret.json # Red Hat pull secret domain: example.com # Base domain

Topology

ctlplanes: 3 # Control plane nodes workers: 2 # Worker nodes version: stable # OpenShift version (stable, 4.14, etc.)

Resources

ctlplane_memory: 16384 # Control plane memory (MB) ctlplane_numcpus: 8 # Control plane CPUs worker_memory: 8192 # Worker memory worker_numcpus: 4 # Worker CPUs

Networking

network: default # Libvirt network api_ip: 192.168.122.253 # API VIP (auto-detected if omitted) ingress_ip: 192.168.122.252 # Ingress VIP

Disconnected/Air-gapped

disconnected_url: registry.local:5000 disconnected_user: admin disconnected_password: password ca: | -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----

kubeadm Deployment

kcli create kube kubeadm -P domain=k8s.local -P ctlplanes=1 -P workers=2 myk8s

Key Parameters

domain: k8s.local # Required domain version: 1.29 # Kubernetes version ctlplanes: 1 # Control planes (odd number for HA) workers: 2 # Worker count network: default # Network name api_ip: 192.168.122.250 # API endpoint (for multi-ctlplane) image: centos9stream # Base OS image

k3s Deployment

kcli create kube k3s -P ctlplanes=1 -P workers=2 myk3s

Key Parameters

ctlplanes: 1 workers: 2 version: latest # k3s version domain: k3s.local image: ubuntu2204

RKE2 Deployment

kcli create kube rke2 -P ctlplanes=1 -P workers=2 myrke2

Key Parameters

ctlplanes: 1 workers: 2 version: latest # RKE2 version domain: rke2.local image: ubuntu2204

HyperShift (Hosted Control Planes)

kcli create kube hypershift
-P pull_secret=~/pull-secret.json
-P nodepool_replicas=2
myhypershift

Key Parameters

pull_secret: ~/pull-secret.json management_cluster: mgmt # Existing cluster name nodepool_replicas: 2 # Worker node count release_image: ... # Specific OCP release

MicroShift Deployment

kcli create kube microshift -P pull_secret=~/pull-secret.json mymicroshift

Key Parameters

pull_secret: ~/pull-secret.json version: latest # MicroShift version image: rhel9 # RHEL-based image required

Cluster Directory Structure

Clusters store state in ~/.kcli/clusters/<clustername>/ :

~/.kcli/clusters/mycluster/ ├── kcli_parameters.yml # Stored parameters ├── kubeconfig # Cluster kubeconfig ├── auth/ # Auth credentials (OpenShift) │ ├── kubeadmin-password │ └── kubeconfig └── (other cluster-specific files)

Scaling Operations

Scale workers

kcli scale kube openshift -P workers=5 mycluster

Scale control planes (careful!)

kcli scale kube kubeadm -P ctlplanes=3 mycluster

Add nodes with specific parameters

kcli scale kube openshift -P workers=3 -P worker_memory=16384 mycluster

Troubleshooting

Check Deployment Progress

OpenShift: watch bootstrap

kcli ssh mycluster-bootstrap journalctl -f -u bootkube

kubeadm: check cluster status

export KUBECONFIG=~/.kcli/clusters/mycluster/kubeconfig kubectl get nodes kubectl get pods -A

Common Issues

  • API IP not reachable: Ensure api_ip is in the correct subnet

  • Pull secret invalid: Verify JSON format and Red Hat subscription

  • Insufficient resources: Check VM memory/CPU against requirements

  • DNS resolution: Ensure domain resolves or use sslip: true

Debug Mode

kcli -d create kube openshift mycluster # Verbose output

Cloud Provider Notes

For cloud providers (AWS, GCP, Azure), kcli can:

  • Auto-create load balancers (cloud_lb: true )

  • Configure cloud DNS (cloud_dns: true )

  • Set up cloud storage (cloud_storage: true )

cloud_lb: true cloud_dns: true cloud_storage: true

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

kcli-vm-operations

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

kcli

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

kcli-testing

No summary provided by upstream source.

Repository SourceNeeds Review