google-agents-cli-scaffold
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
kubekey
Manage Kubernetes clusters with KubeKey: check installation, install KubeKey, create clusters, scale nodes, upgrade clusters, and view configurations. Use when working with Kubernetes cluster deployment, management, or when the user mentions KubeKey, kk, or Kubernetes cluster operations.
Full skill instructions
KubeKey is a tool for deploying Kubernetes clusters. This skill provides capabilities to check, install KubeKey, create and scale Kubernetes clusters, and view cluster configurations.
This skill enables the agent to:
kk add nodes or remove nodes using kk delete node from existing Kubernetes clustersWhen the user needs to work with KubeKey or Kubernetes cluster management:
scripts/check_kubekey.shkk command is available in PATHscripts/install_kubekey.sh [VERSION]/usr/local/bin/kkWhen the user wants to create a Kubernetes cluster, you need to gather requirements and generate a configuration file. Follow this process:
Ask the user or infer from context the following information:
Essential Information:
Kubernetes Configuration:
Kubernetes Version:
v1.28.0 (with 'v' prefix)Container Runtime Interface (CRI):
docker, containerd, cri-o, isulacontainerd (recommended for newer K8s versions)Network Plugin (CNI):
calico, flannel, cilium, kube-ovn, weavecalico (if not specified)Pod CIDR:
10.233.64.0/18 (if not specified)/18 = ~16k pods, /16 = ~65k podsService CIDR:
10.233.0.0/18 (if not specified)Control Plane Endpoint:
6443Optional Advanced Settings:
Image Registry:
Proxy Mode:
iptables (default, simpler)ipvs (better performance for large clusters)Max Pods per Node:
110Node CIDR Mask Size:
24examples/cluster-config.yaml as a basescripts/generate_config.sh to interactively generate a config, ORapiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
name: <cluster-name>
spec:
hosts:
- {name: <node-name>, address: <external-ip>, internalAddress: <internal-ip>, user: <ssh-user>, password: "<password>"}
# Or use privateKeyPath for SSH key authentication
# - {name: <node-name>, address: <external-ip>, internalAddress: <internal-ip>, user: <ssh-user>, privateKeyPath: "<key-path>"}
roleGroups:
etcd:
- <master-node-names>
master:
- <master-node-names>
worker:
- <worker-node-names>
controlPlaneEndpoint:
domain: <lb-domain-or-empty>
address: ""
port: 6443
kubernetes:
version: <k8s-version> # e.g., v1.28.0
imageRepo: kubesphere
clusterName: cluster.local
masqueradeAll: false
maxPods: 110
nodeCidrMaskSize: 24
proxyMode: ipvs # or iptables
network:
plugin: <cni-plugin> # calico, flannel, cilium, etc.
kubePodsCIDR: <pod-cidr>
kubeServiceCIDR: <service-cidr>
multusCNI:
enabled: false
registry:
privateRegistry: "<registry-url>"
namespaceOverride: ""
registryMirrors: []
insecureRegistries: []
addons: []
kk create cluster -f <config-file>kubectl get nodesSmall Development Cluster (3 nodes, 1 master + 2 workers):
Production Cluster (5+ nodes, HA):
High Performance Cluster:
KubeKey uses separate commands for adding and deleting nodes:
Get current cluster configuration:
kk create config --from-cluster -f current-cluster.yaml
This generates a configuration file with all existing nodes from the current cluster.
Note: The --from-cluster flag is used to generate a config file from an existing cluster. For new clusters, create the config file manually or use scripts/generate_config.sh.
Edit the configuration file:
spec.hosts sectionroleGroups (worker, master, etcd)spec:
hosts:
- {name: master1, address: 192.168.0.2, ...} # existing
- {name: worker1, address: 192.168.0.3, ...} # existing
- {name: worker2, address: 192.168.0.4, ...} # existing
- {name: worker3, address: 192.168.0.5, ...} # NEW node
roleGroups:
worker:
- worker1
- worker2
- worker3 # NEW node added
Add nodes:
kk add nodes -f current-cluster.yaml
Or use the script: scripts/add_nodes.sh current-cluster.yaml
Verify: kubectl get nodes
Drain the node (recommended before deletion):
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data
This safely evicts all pods from the node.
Delete the node:
kk delete node <node-name>
Or use the script: scripts/delete_node.sh <node-name>
Verify: kubectl get nodes
Important Notes:
KubeKey supports upgrading Kubernetes clusters and optionally KubeSphere. Follow these steps:
Check Current Versions:
kubectl version --short
kk version
Determine Target Version:
Upgrade Options:
Option A: Interactive Upgrade (Recommended)
./scripts/upgrade_cluster.sh
The script will prompt for:
Option B: Command Line with Options
# Upgrade Kubernetes only
./scripts/upgrade_cluster.sh --k8s-version v1.28.0
# Upgrade Kubernetes and KubeSphere
./scripts/upgrade_cluster.sh --k8s-version v1.28.0 --ks-version v3.4.1 --with-kubesphere
# Using configuration file
./scripts/upgrade_cluster.sh --config cluster-config.yaml --k8s-version v1.28.0
Option C: Direct KubeKey Command
# Kubernetes only
kk upgrade --with-kubernetes --kubernetes-version v1.28.0
# Kubernetes + KubeSphere
kk upgrade --with-kubernetes --with-kubesphere \
--kubernetes-version v1.28.0 \
--kubesphere-version v3.4.1
Monitor Upgrade Progress:
kubectl get nodes -wkubectl get pods -AVerify Upgrade:
kubectl version --short
kubectl get nodes
kubectl get pods -A
Kubernetes Version Selection:
KubeSphere Upgrade:
Rollback:
Common Issues:
kk version to check KubeKey version and cluster infokk versionkk create config --from-cluster -f config.yamlspec.hosts and roleGroupskk add nodes -f config.yaml (or use scripts/add_nodes.sh)kubectl get nodeskubectl drain <node-name> --ignore-daemonsets --delete-emptydir-datakk delete node <node-name> (or use scripts/delete_node.sh)kubectl get nodeskubectl version --short./scripts/upgrade_cluster.sh (interactive) or with optionskubectl get nodes and kubectl versionFor detailed information about all configuration options, see:
references/config-options.md - Complete reference of all configuration optionsexamples/cluster-config.yaml - Example configuration filescripts/generate_config.sh - Interactive configuration generatorKey configuration decisions:
For detailed technical references, see:
Key resources:
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
Set up tracing, logging, and monitoring for deployed ADK agents across Cloud Trace, BigQuery, and third-party platforms.
Enterprise Azure infrastructure architect generating Bicep or Terraform from workload descriptions.
Plan and configure production-ready Azure Kubernetes Service clusters with Day-0 and Day-1 best practices.
Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.
Web search, scraping, extraction, crawling, and monitoring via ScrapeGraph AI CLI.
Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.
Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.
Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".
Build SEO-optimized pages at scale using templates, data, and proven playbook patterns.
Design and build isolated, reusable Convex backend components with clear boundaries and app-facing wrappers.
Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".
Opus.ai: Revolutionize Your Web Experience
Build a no-code AI app in minutes.
An IDE for code migration from legacy to modern frameworks through coding agents.
Automate CGI animation in live-action scenes
Branded artistic QR-code concepts
Launch a website in seconds with AI.
Streamline Your Coding Experience with AI Code Helper
Convert any screenshot or design to clean code.