Agent skill

Educates Upgrade Kubernetes

by educates in educates/educates-training-platform

Upgrade Kubernetes version support across the educates-training-platform project.

Apache-2.0Auto-check: notesDevOps & Cloud

Install Educates Upgrade Kubernetes

skills CLI
$ npx skills add educates/educates-training-platform --skill educates-upgrade-kubernetes -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install educates/educates-training-platform educates-upgrade-kubernetes --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/educates/educates-training-platform.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/educates-upgrade-kubernetes .claude/skills/educates-upgrade-kubernetes && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
educates-upgrade-kubernetes
GitHub stars
161
Token cost
~1.9k tokens
SKILL.md length
695 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

Upgrade Kubernetes version support across the educates-training-platform project.

  • Works in 4 steps: Gather Version Information → Update All Files → Verify → …
  • Tasks that involve Container orchestration
  • SKILL.md covers Step 1: Gather Version…, Step 2: Update All Files, Keep the vcluster application… and Step 3: Verify, plus 1 more section
  • Calls go, make and kind; reaches dl.k8s.io and github.com

What it does

Educates Upgrade Kubernetes is an agent skill from educates/educates-training-platform. Upgrade Kubernetes version support across the educates-training-platform project. Invoke when asked to "upgrade kubernetes version", "support newer kubernetes version", "add kubectl version", or "drop kubernetes version". Updates kubectl binaries in the base environment Dockerfile, version mapping scripts, kind cluster constants, and Go dependencies.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud, covering Container orchestration. It works with Kubernetes and Docker. The repository describes itself as: A platform for hosting interactive workshop environments in Kubernetes, or on top of a local container runtime. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Container orchestration

Example prompts

  • “upgrade kubernetes version”
  • “support newer kubernetes version”
  • “add kubectl version”
  • “/educates-upgrade-kubernetes”

Requirements

  • Pre-approved tools (allowed-tools): Read, Edit, Glob, Bash, WebFetch

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Gather Version Information
  2. Update All Files
  3. Verify
  4. Post-Verification Checklist

What it can do on your machine

Read from SKILL.md and the folder at commit 36abce0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Edit
    • Glob
    • Bash
    • WebFetch

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • go
    • make
    • kind

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • dl.k8s.io
    • github.com
    • downloadkubernetes.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Educates Upgrade Kubernetes loads about 1.9k tokens when it runs. Until then it costs about 95 tokens; SKILL.md has 695 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~95
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Edit, Glob, Bash, WebFetch

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from educates/educates-training-platform at commit 36abce0, republished under its Apache-2.0 licence (© educates). 695 words, ~1,885 tokens.

Download SKILL.mdSave it as .claude/skills/educates-upgrade-kubernetes/SKILL.md (or your agent's skills folder).
name
educates-upgrade-kubernetes
description
Upgrade Kubernetes version support across the educates-training-platform project. Invoke when asked to "upgrade kubernetes version", "support newer kubernetes version", "add kubectl version", or "drop kubernetes version". Updates kubectl binaries in the base environment Dockerfile, version mapping scripts, kind cluster constants, and Go dependencies.
allowed-tools
Read, Edit, Glob, Bash, WebFetch
argument-hint
[<new-version>] [--drop <old-version>] (e.g. 1.35 --drop 1.31)

Educates Kubernetes Version Upgrade Protocol

Upgrade Kubernetes version support based on $ARGUMENTS.

  • If <new-version> is provided (e.g. 1.35), add support for that version.
  • If --drop <old-version> is provided (e.g. --drop 1.31), remove that version.
  • If no arguments, check https://www.downloadkubernetes.com/ for the latest stable versions and ask the user whether to keep 3 or 4 versions before proceeding.

We support versions for linux on amd64 and arm64 only.

Step 1: Gather Version Information

For the new kubectl version
  1. Fetch checksums for both architectures:

    • https://dl.k8s.io/v{KUBECTL_VERSION}/kubernetes-client-linux-amd64.tar.gz.sha512
    • https://dl.k8s.io/v{KUBECTL_VERSION}/kubernetes-client-linux-arm64.tar.gz.sha512

    The full version string uses semantic versioning (e.g. 1.35.1). The short version is major.minor (e.g. 1.35).

  2. Find the corresponding kind node image and SHA256 digest at https://github.com/kubernetes-sigs/kind/releases. Image format: kindest/node:v<K8S_VERSION>@sha256:<DIGEST>

Current versions

Read workshop-images/base-environment/Dockerfile to see which versions are currently installed and their RUN block format. Read client-programs/pkg/constants/kubernetes.go to see the current kind image map.

Step 2: Update All Files

You must update all of the following. Do not skip any.

workshop-images/base-environment/Dockerfile

Adding a new version — add a RUN <<EOF block following the existing pattern:

dockerfile
RUN <<EOF
    KUBECTL_VERSION=1.35.1
    KUBECTL_SHORT_VERSION=$(echo ${KUBECTL_VERSION} | cut -d. -f1,2)
    CHECKSUM_amd64="<sha512-for-amd64>"
    CHECKSUM_arm64="<sha512-for-arm64>"
    # ... rest of install block (copy from adjacent version block)
EOF

Removing an old version — delete the entire RUN <<EOF ... EOF block for that version.

Version mapping scripts (2 files with identical logic)

Update the case statement in both files to match the currently supported versions:

  • workshop-images/base-environment/opt/kubernetes/bin/kubectl
  • workshop-images/base-environment/opt/eduk8s/etc/setup.d/01-kubernetes.sh

(The kubectl-convert plugin and its wrapper were removed in 4.0; branches predating that carry a third copy of the same case statement at opt/kubernetes/bin/kubectl-convert.)

Pattern rules:

  • 1.2* and 1.3[012] (or equivalent old versions) → map to the lowest supported version
  • One explicit case per supported version (e.g. 1.33, 1.34, 1.35, 1.36)
  • Default fallback (*) → the highest supported version

Example for versions 1.33–1.36:

bash
case "$KUBECTL_VERSION" in
1.2*)
    KUBECTL_VERSION=1.33
    ;;
1.3[012])
    KUBECTL_VERSION=1.33
    ;;
1.33)
    KUBECTL_VERSION=1.33
    ;;
1.34)
    KUBECTL_VERSION=1.34
    ;;
1.35)
    KUBECTL_VERSION=1.35
    ;;
1.36)
    KUBECTL_VERSION=1.36
    ;;
*)
    KUBECTL_VERSION=1.36
    ;;
esac

The three files must have identical case statement logic.

client-programs/pkg/constants/kubernetes.go

This map is what educates local cluster create --kubernetes-version uses to pick a kind node image, so the digests must come from the kind release the CLI vendors (sigs.k8s.io/kind in client-programs/go.mod). The node-image set and digests are kind-version-specific — take them from the matching release notes at https://github.com/kubernetes-sigs/kind/releases, not an older kind release.

Update KubernetesVersionToKindImage — add new version entries, remove dropped ones:

go
var KubernetesVersionToKindImage = map[string]string{
    "1.36": "kindest/node:v1.36.x@sha256:<digest>",
    "1.35": "kindest/node:v1.35.x@sha256:<digest>",
    "1.34": "kindest/node:v1.34.x@sha256:<digest>",
    "1.33": "kindest/node:v1.33.x@sha256:<digest>",
}

const DefaultKubernetesVersion = "1.36"

DefaultKubernetesVersion is the version local cluster create uses when --kubernetes-version is not given. It currently tracks the newest supported version ("1.36"); if you would rather trade recency for stability, the second-newest is a reasonable alternative — just keep it consistent with the code, go.mod, and the release notes.

Whenever the supported set or the vendored kind version changes, also update any code comments that name a specific version or kind release so they still match reality — e.g. the sigs.k8s.io/kind vX.Y.Z note in pkg/constants/kubernetes.go and the example node image in the Ensuring node image (...) comment in pkg/cluster/kindcluster.go.

Show full SKILL.md (261 more words)Show less
client-programs/go.mod

Update sigs.k8s.io/kind to the version that supports the new Kubernetes versions. Update k8s.io/* dependencies to align with DefaultKubernetesVersion:

  • For Kubernetes 1.36.x → use k8s.io/* v0.36.x
  • Packages: k8s.io/api, k8s.io/apimachinery, k8s.io/cli-runtime, k8s.io/client-go, k8s.io/kubectl
  • Also update sigs.k8s.io/controller-runtime to a compatible version

After editing go.mod, run:

bash
cd client-programs && go mod tidy

Keep the vcluster application aligned

The vcluster workshop application provisions Kubernetes at its own set of versions (the loftsh-kubernetes images in session-manager), maintained by the educates-upgrade-vcluster skill. Keep that set the same as the versions supported here, and keep the vcluster K8S_DEFAULT_VERSION the same as DefaultKubernetesVersion, as long as the vcluster release in use supports them (check its images-optional.txt / images.txt).

After changing the supported set here, ask the user for permission to run educates-upgrade-vcluster to bring the vcluster application's K8S_VERSIONS / K8S_DEFAULT_VERSION in line (or to accept a deliberate divergence, for example when the current vcluster release cannot yet provision a newly added version). Do not silently leave the two sets out of sync.

Step 3: Verify

Run in order, fix any failures before proceeding:

bash
# Build the workshop base image (verifies Dockerfile changes)
make build-base-environment

# Build the CLI (verifies go.mod and constants changes)
cd client-programs && go mod tidy && go build ./...

Step 4: Post-Verification Checklist

  • All three version mapping files have identical case statement logic
  • SHA512 checksums are correct for both amd64 and arm64
  • Removed version has no remaining RUN block in Dockerfile
  • KubernetesVersionToKindImage contains exactly the supported versions, with digests from the vendored kind release
  • DefaultKubernetesVersion matches the intended default (currently the newest supported version)
  • k8s.io/* versions in go.mod align with DefaultKubernetesVersion
  • Code comments naming a specific version or kind release were updated to match
  • go mod tidy ran cleanly in client-programs/
  • vcluster application k8s set aligned, or divergence agreed with the user (see educates-upgrade-vcluster)

© educates, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/educates-upgrade-kubernetes of educates/educates-training-platform.

Open the folder on GitHubat commit 36abce0

Compare with similar skills

Educates Upgrade Kubernetes next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Educates Upgrade Kubernetes compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Educates Upgrade Kubernetes this skilleducates/educates-training-platform161—~1.9kAutomated safety check: NotesApache-2.0
LangBot Deployment Guidelangbot-app/LangBot18k—~1.2kAutomated safety check: NotesApache-2.0
Build Openshell Mxc WindowsNVIDIA/OpenShell16k—~4.9kAutomated safety check: PassApache-2.0
Devopsnicepkg/auto-company1942 repos~814Automated safety check: PassMIT
Debug Openshell ClusterNVIDIA/OpenShell16k—~19kAutomated safety check: NotesApache-2.0
Deepseek Harness Dockerrunzhliu/deepseek-harness-docker110—~2.7kAutomated safety check: NotesMIT

Similar skills

  • LangBot Deployment Guide

    langbot-app/LangBot

    Deploys and configures a LangBot instance with Docker Compose or Kubernetes, covering config.yaml, the Box sandbox runtime, the plugin runtime and the global API key.

    18k GitHub stars~1.2k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Official

    Maintain and validate OpenShell's build-only Windows MSVC lane for x64 and ARM64.

    16k GitHub stars~4.9k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Devops

    nicepkg/auto-company

    Deploy to Cloudflare (Workers, R2, D1), Docker, GCP (Cloud Run, GKE), Kubernetes (kubectl, Helm).

    194 GitHub starsUsed in 2 repos~814 tokens
    DevOps & CloudAuto-check passed
  • Debug Openshell Cluster

    NVIDIA/OpenShell

    Official

    Debug why an OpenShell gateway deployment is unhealthy, unreachable, or unable to create sandboxes.

    16k GitHub stars~19k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Deepseek Harness Docker

    runzhliu/deepseek-harness-docker

    Deploy, configure, verify, upgrade, and troubleshoot DeepSeek Harness with the community Docker, Docker Compose, rootless Podman, and Helm runtime, including the built-in Chromium/noVNC browser…

    110 GitHub stars~2.7k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Pi K8s Deploy

    rodrigorodrigues/microservices-design-patterns

    Check Docker Hub for a new :latest image on a managed service and roll it out to the home Pi k8s cluster, the same way authentication-service was deployed on 2026-08-29 (SSH + kubectl rollout…

    187 GitHub stars~1.6k tokensUpdated 20 days ago
    DevOps & CloudAuto-check passed

More from educates/educates-training-platform

  • Educates Git Workflow

    educates/educates-training-platform

    Drives the Educates project's Gitflow-based branch and release workflow.

    161 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Educates Release Notes

    educates/educates-training-platform

    Create release notes for an Educates version. An agent skill from educates/educates-training-platform.

    161 GitHub stars~1.2k tokensUpdated today
    Auto-check: notes
  • Educates Upgrade Cluster Services

    educates/educates-training-platform

    Upgrade a vendored upstream cluster-service Helm chart the Educates operator installs for EducatesClusterConfig — cert-manager, Contour, Kyverno, or external-dns.

    161 GitHub stars~3.2k tokensUpdated today
    Auto-check: notes
  • Educates Upgrade Go

    educates/educates-training-platform

    Upgrade the Go version across the entire educates-training-platform project.

    161 GitHub stars~1.4k tokensUpdated today
    Auto-check: notes
  • Educates Upgrade Theme Libraries

    educates/educates-training-platform

    Upgrade the vendored third-party frontend libraries bundled into the Educates workshop dashboard theme (Bootstrap, Font Awesome, jQuery, Underscore.js, JSONForm, js-yaml).

    161 GitHub stars~2.6k tokensUpdated today
    Auto-check: notes
  • Educates Upgrade Vcluster

    educates/educates-training-platform

    Upgrade the vcluster software version (and the Kubernetes versions the virtual cluster provisions) used by the vcluster workshop application in session-manager.

    161 GitHub stars~2.7k tokensUpdated today
    Auto-check: notes

Categories

Questions about Educates Upgrade Kubernetes

What does Educates Upgrade Kubernetes do?

Upgrade Kubernetes version support across the educates-training-platform project. Educates Upgrade Kubernetes is an agent skill from educates/educates-training-platform. Upgrade Kubernetes version support across the educates-training-platform project.

When should I use Educates Upgrade Kubernetes?

Educates Upgrade Kubernetes fits situations like: tasks that involve Container orchestration.

How do I install Educates Upgrade Kubernetes in Claude Code?

Run `npx skills add educates/educates-training-platform --skill educates-upgrade-kubernetes -a claude-code`. Or copy the skill folder (.claude/skills/educates-upgrade-kubernetes in educates/educates-training-platform) into .claude/skills/educates-upgrade-kubernetes in your project. Claude Code loads it when a task matches its description.

How do I install Educates Upgrade Kubernetes in Codex?

Run `npx skills add educates/educates-training-platform --skill educates-upgrade-kubernetes -a codex`. Or copy the skill folder (.claude/skills/educates-upgrade-kubernetes in educates/educates-training-platform) into .agents/skills/educates-upgrade-kubernetes in your project. Codex loads it when a task matches its description.

Can I use Educates Upgrade Kubernetes in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add educates/educates-training-platform --skill educates-upgrade-kubernetes -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/educates-upgrade-kubernetes, .gemini/skills/educates-upgrade-kubernetes, .github/skills/educates-upgrade-kubernetes and .opencode/skills/educates-upgrade-kubernetes in your project.

What does Educates Upgrade Kubernetes need to run?

Going by SKILL.md and its folder, Educates Upgrade Kubernetes needs the command-line tools its instructions call (go, make and kind). Its frontmatter pre-approves these tools: Read, Edit, Glob, Bash, WebFetch.

Does Educates Upgrade Kubernetes access the network?

SKILL.md names 3 domains. In commands or code: dl.k8s.io, github.com and downloadkubernetes.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Educates Upgrade Kubernetes safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Educates Upgrade Kubernetes use?

Educates Upgrade Kubernetes is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Educates Upgrade Kubernetes use?

About 1.9k tokens (SKILL.md is roughly 7.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Educates Upgrade Kubernetes?

Skills that share tags, products or a category with Educates Upgrade Kubernetes: LangBot Deployment Guide (langbot-app/LangBot, 18k stars), Build Openshell Mxc Windows (NVIDIA/OpenShell, 16k stars), Devops (nicepkg/auto-company, 194 stars) and Debug Openshell Cluster (NVIDIA/OpenShell, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Educates Upgrade Kubernetes?

educates (a GitHub organization) maintains it in educates/educates-training-platform, which has 161 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 8, 2026.

Source: educates/educates-training-platform on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.