KH

Provides configuration, debugging, and operational support for the kube-hetzner terraform project.

Install

mkdir -p .claude/skills/kh-assistant && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5903" && unzip -o skill.zip -d .claude/skills/kh-assistant && rm skill.zip

Installs to .claude/skills/kh-assistant

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use when users need help with kube-hetzner configuration, debugging, or questions - acts as an intelligent assistant with live repo access
138 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Retrieves latest release versions from GitHub
  • Parses variables.tf and documentation for config guidance
  • Searches repository issues for debugging context
  • Provides best practices for k3s cluster setup on Hetzner

How it works

It uses indexed repository content and official docs to act as an expert interface for the Kube-Hetzner project.

Inputs & outputs

You give it
Deployment question or debug scenario
You get back
Configuration recommendations or debug steps

When to use kh-assistant

  • Debug cluster deployment issues
  • Retrieve latest release version
  • Check server pricing and types
  • Configure variables.tf

About this skill

KH Assistant

Expert assistant for terraform-hcloud-kube-hetzner — deploying production-ready k3s/RKE2 clusters on Hetzner Cloud.

Startup Checklist

ALWAYS do these first before answering any question:

# 1. Get latest release version
gh release list --repo kube-hetzner/terraform-hcloud-kube-hetzner --limit 1 --json tagName,publishedAt

# 2. Read key files for context; use exact search to scope large files
# - variables.tf — all configurable options
# - docs/llms.md — PRIMARY comprehensive documentation (~60k tokens)
# - kube.tf.example — working example
# - CHANGELOG.md — recent changes

For Hetzner-specific info (server types, pricing, locations):

# Use web search
WebSearch "hetzner cloud server types pricing 2026"

Route to Sibling Skills First

Do not hand-solve a specialized workflow inline when a sibling skill matches. Recommend the skill, explain why it fits, and invoke it when available. End users should mainly be routed to migrate-v2-to-v3, upgrade-cluster, and debug-node; maintainer-only skills are for repository operations, not normal cluster support.

User intentSkillWhat it doesInvocation
Migrate an existing Terraform root or cluster from module v2.x to v3.xmigrate-v2-to-v3Audits and rewrites the v2 contract, preserves state, and enforces the protected-infrastructure plan gate/migrate-v2-to-v3
Upgrade or harden a live cluster, module/providers, k3s/RKE2, or replace nodes safelyupgrade-clusterSeparates module convergence from runtime rollout and proves Terraform plus Kubernetes health/upgrade-cluster
Diagnose an unreachable node, SSH/cloud-init failure, or stuck provisioningdebug-nodeUses Hetzner rescue mode to mount and inspect the node without working node SSH/debug-node
Validate module changes with Terraform and OpenTofutest-changesRuns formatting, validation, compatibility, example, and plan gates against a supplied test root/test-changes
Implement a GitHub issue (maintainer only)fix-issueFetches and verifies the issue, implements the root-cause fix, tests it, and preserves contributor credit/fix-issue <number>
Classify and respond to a GitHub issue (maintainer only)triage-issueChecks evidence and duplicates, classifies the report, and drafts the appropriate response/action/triage-issue <number>
Review a pull request (maintainer only)review-prPerforms a security, compatibility, regression, and code-quality review of an untrusted contribution/review-pr <number>
Synchronize project documentation (maintainer only)sync-docsKeeps variables.tf, generated/reference docs, examples, migration docs, and skills coherent/sync-docs
Prepare or execute a release (maintainer only)prepare-releaseVerifies release content and versions; tags/pushes only with explicit maintainer release authority/prepare-release
Prove risky changes across the live v3 matrix (maintainer only)running-stabilization-loopIteratively runs, diagnoses, fixes, and reruns the k3s/RKE2 matrix plus tagged-version upgrade paths/running-stabilization-loop

If the matching skill is not installed, tell the user to install from the project repository and then invoke it:

# Interactive selection
npx skills add kube-hetzner/terraform-hcloud-kube-hetzner

# Install only the recommended skill (example)
npx skills add kube-hetzner/terraform-hcloud-kube-hetzner --skill migrate-v2-to-v3

# Install globally for supported agents
npx skills add kube-hetzner/terraform-hcloud-kube-hetzner -g

Do not recommend maintainer-only skills to end users unless they are explicitly contributing to or maintaining this repository.


Knowledge Sources

Primary Documentation Files

FilePurposeWhen to Use
docs/llms.mdPRIMARY - Comprehensive variable referenceFirst stop for any variable question
variables.tfVariable definitions with types/defaultsVerify exact syntax and defaults
locals.tfCore logic and computed valuesUnderstanding how features work
kube.tf.exampleComplete working exampleTemplate for configurations
CHANGELOG.mdVersion history, breaking changesUpgrade questions, "when was X added"
MIGRATION.mdCanonical old-to-new migration variable mapv2 -> v3 upgrade questions
docs/v2-to-v3-migration.mdv2 -> v3 operator playbookExisting-cluster major upgrades
docs/v3-release-evidence.mdLive v3 proof, CI caveats, RKE2 sizing evidenceRelease readiness, "is this proven?" questions
docs/v3-topology-recommendations.mdv3 topology chooser and "what not to choose" rulesNew designs, multinetwork, Gateway API, registry mirror
docs/selinux.mdSELinux policy provenance and AVC workflowWorkload denials, policy proposals, disable-vs-fix decisions
README.mdProject overview, quick startNew user orientation

Specialized Documentation

FileTopic
docs/terraform.mdAuto-generated terraform docs
docs/ssh.mdSSH configuration, key formats
docs/add-robot-server.mdHetzner dedicated server integration
docs/private-network-egress.mdNAT router setup for private clusters
docs/customize-mount-path-longhorn.mdLonghorn storage customization

GitHub (Live Data)

# Latest release
gh release list --repo kube-hetzner/terraform-hcloud-kube-hetzner --limit 1

# Search issues for errors
gh issue list --repo kube-hetzner/terraform-hcloud-kube-hetzner --search "<error>" --state all

# Search discussions for how-to
gh api repos/kube-hetzner/terraform-hcloud-kube-hetzner/discussions --jq '.[].title'

# Check if variable exists
grep 'variable "<name>"' variables.tf

Current v3 Baseline

Verify the live tag at startup; the checked-in release baseline is v3.1.0.

FactCurrent contract
Kubernetes distributionk3s is the default; RKE2 is supported via kubernetes_distribution = "rke2"
Kubernetes version policyk3s defaults to the upstream stable channel; pin a version/channel when reproducibility or v2 minor preservation matters
Node OSBrand-new nodepools default to Leap Micro; existing MicroOS nodepools remain supported and are preserved on normal v2 upgrades
Addon versionsUnset addon version inputs use the reviewed deterministic module matrix; latest is an explicit opt-in to floating upstream behavior

Critical Rules

MUST Follow — Never Violate

RuleExplanation
At least 1 control planecontrol_plane_nodepools must have at least one entry with count >= 1
Supported OS onlyNew nodes default to Leap Micro; MicroOS is legacy/upgrade support. Never suggest Ubuntu, Debian, or other generic OS images.
Network region coveragenetwork_region must contain ALL node locations
Odd control plane counts for HAUse 1, 3, or 5 — never 2 or 4 (quorum requirement)
Autoscaler is separateautoscaler_nodepools is independent from agent_nodepools
Latest version alwaysAlways fetch and use the latest release tag

Common Mistakes to Prevent

MistakeCorrect
Empty control_plane_nodepoolsAt least one with count >= 1
2 control planes for "HA"Use 3 (odd number for quorum)
Suggesting Ubuntu/DebianUse Leap Micro by default; MicroOS only for legacy/explicit nodepools
Location not in network_regionnetwork_region must cover all locations
Confusing autoscaler with agentsAutoscaler pools are completely separate
Using old versionAlways check latest release first
Using v2 input names in v3Rewrite with MIGRATION.md: enable_* booleans, kubernetes_distribution, k3s_channel, rke2_channel, node_transport_mode, and network_subnet_mode
Raw Hetzner private multinetwork for >100 nodesUse node_transport_mode = "tailscale" or the experimental Cilium public overlay; Hetzner private Networks do not route to each other
Treating external Tailscale hooks as node transportUse node_transport_mode = "tailscale" for cluster transport; use node_connection_overrides only for user-owned operator access
Treating Cloudflare Mesh/WARP as supported node transportUse Tailscale for kube-hetzner-managed secure node transport; Cloudflare Access/Tunnel is external operator/app access only
Assuming one Hetzner Network can exceed 100 nodesShard across multiple Hetzner Networks and count all attachments, including control planes, static agents, autoscaler max_nodes, NAT routers, and load balancers
Promising static 10k placement spread in one projectHetzner spread groups are 10 servers each and 50 groups per project; use autoscaler/network shards or split across projects/clusters
Confusing Cilium Gateway API with Traefik Gateway providerUse cilium_gateway_api_enabled for Cilium, traefik_provider_kubernetes_gateway_enabled for Traefik
Enabling Cilium Gateway API with kube-proxyRequires cni_plugin = "cilium" and enable_kube_proxy = false
Enabling embedded registry mirror on low-trust nodesUse only for equal-trust clusters; warn about credential sharing and tag poisoning
Disabling SELinux globally for one workload denialFollow docs/selinux.md: collect AVCs, try udica, use per-pool selinux = false only as the last resort
Assuming RKE2 needs 8GB control planesv3 size-aware kubelet reservations make 4GB cx23 control planes viable; still size production for workload headroom
Manual cloud deletes during teardownUse scripts/destroy.sh first; scripts/cleanup.sh is the forceful fallback

v3 Topology Shortcuts

| Need | Recomme


Content truncated.

When not to use it

  • When working with non-Hetzner cloud providers
  • When the user is not deploying k3s infrastructure

Prerequisites

GitHub CLITerraform knowledge

Limitations

  • Limited to the Kube-Hetzner terraform implementation
  • Depends on documentation freshness

How it compares

It is context-aware of the specific Kube-Hetzner project architecture and variables rather than generic k8s advice.

Compared to similar skills

kh-assistant side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
kh-assistant (this skill)16moReviewIntermediate
senior-devops77moReviewAdvanced
devops-engineer13moReviewAdvanced
terraform-specialist14moNo flagsAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

senior-devops

davila7

Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup, infrastructure as code, deployment automation, and monitoring. Use when setting up pipelines, deploying applications, managing infrastructure, implementing monitoring, or optimizing deployment processes.

720

devops-engineer

Jeffallan

Use when setting up CI/CD pipelines, containerizing applications, or managing infrastructure as code. Invoke for pipelines, Docker, Kubernetes, cloud platforms, GitOps.

12

terraform-specialist

sickn33

Expert Terraform/OpenTofu specialist mastering advanced IaC automation, state management, and enterprise infrastructure patterns. Handles complex module design, multi-cloud deployments, GitOps workflows, policy as code, and CI/CD integration. Covers migration strategies, security best practices, and modern IaC ecosystems. Use PROACTIVELY for advanced IaC, state management, or infrastructure automation.

12

devops-engineer

I-Synergy

DevOps and CI/CD specialist. Use for building pipelines, containerization, infrastructure as code, or deployment automation. User-invocable only for production deployments.

00

bazel-build-optimization

wshobson

Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.

14116

deployment-engineer

sickn33

Expert deployment engineer specializing in modern CI/CD pipelines, GitOps workflows, and advanced deployment automation. Masters GitHub Actions, ArgoCD/Flux, progressive delivery, container security, and platform engineering. Handles zero-downtime deployments, security scanning, and developer experience optimization. Use PROACTIVELY for CI/CD design, GitOps implementation, or deployment automation.

418

Search skills

Search the agent skills registry