Official agent skill

Run E2E Test

by kubernetes-sigs in kubernetes-sigs/cloud-provider-azure

Parse a Go e2e test from tests/e2e/, translate each step to kubectl and az CLI commands, and interactively replay the test against a live cluster.

OfficialApache-2.0Auto-check passedTesting & QA

Install Run E2E Test

skills CLI
$ npx skills add kubernetes-sigs/cloud-provider-azure --skill run-e2e-test -a claude-code

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

GitHub CLI
$ gh skill install kubernetes-sigs/cloud-provider-azure run-e2e-test --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/kubernetes-sigs/cloud-provider-azure.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/run-e2e-test .claude/skills/run-e2e-test && 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
run-e2e-test
GitHub stars
294
Token cost
~3.8k tokens
SKILL.md length
1,977 words
Files
6 (incl. scripts, references)
Skills in repo
12
Repo updated
First seen
Licence
Apache-2.0

At a glance

Parse a Go e2e test from tests/e2e/, translate each step to kubectl and az CLI commands, and interactively replay the test against a live cluster.

  • Works in 7 steps: Confirm Cluster Context → Analyze the Test → Review the Plan → …
  • The user wants to manually run
  • SKILL.md covers When To Use, Prerequisites, Inputs and Workflow, plus 4 more sections
  • Runs Python scripts from its folder; calls kubectl, az and python3

What it does

Run E2E Test is an agent skill from kubernetes-sigs/cloud-provider-azure, published by the product's own GitHub organization. Parse a Go e2e test from tests/e2e/, translate each step to kubectl and az CLI commands, and interactively replay the test against a live cluster. Use when the user wants to manually run, debug, or reproduce an e2e test case, or when they mention replaying a test, running a test against a cluster, or verifying e2e test behavior with kubectl and az.

Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `references/INDEX.md`, `references/patterns.md` and `scripts/analyze_test.py`).

It sits in Testing & QA, covering End-to-end testing, Container orchestration and Test generation. It works with Kubernetes and Microsoft Azure. The repository describes itself as: Cloud provider for Azure. The licence is Apache-2.0.

When your agent uses it

  • The user wants to manually run
  • Reproduce an e2e test case
  • They mention replaying a test
  • Running a test against a cluster

Example prompts

  • “/run-e2e-test”

Requirements

  • Python 3

Workflow steps

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

  1. Confirm Cluster Context
  2. Analyze the Test
  3. Review the Plan
  4. Execute Setup
  5. Execute Test Steps
  6. Cleanup
  7. Report

What it can do on your machine

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

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 3 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • kubectl
    • az
    • python3

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

  • Network

    No URLs in SKILL.md. Its commands use kubectl and az, which can reach the network depending on how they are called.

    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

Run E2E Test loads about 3.8k tokens when it runs, and up to ~6.9k if it reads all its reference files. Until then it costs about 91 tokens; SKILL.md has 1,977 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~91
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.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 passed

The automated check found no risky patterns in SKILL.md.

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); the scripts in this folder are not scanned.

SKILL.md

The full file from kubernetes-sigs/cloud-provider-azure at commit 0201852, republished under its Apache-2.0 licence (© kubernetes-sigs). 1,977 words, ~3,811 tokens.

Download SKILL.mdSave it as .claude/skills/run-e2e-test/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
run-e2e-test
description
Parse a Go e2e test from tests/e2e/, translate each step to kubectl and az CLI commands, and interactively replay the test against a live cluster. Use when the user wants to manually run, debug, or reproduce an e2e test case, or when they mention replaying a test, running a test against a cluster, or verifying e2e test behavior with kubectl and az.

Run E2E Test

When To Use

Use this skill when the user wants to manually replay a cloud-provider-azure e2e test case against a live Kubernetes cluster. The skill parses the Go test source, translates each step to CLI commands (kubectl / az), and guides interactive execution.

Prerequisites

  • az login completed (active Azure session)
  • Valid KUBECONFIG pointing at the target cluster
  • kubectl available on $PATH
  • python3 available on $PATH

Inputs

InputRequiredDescription
Test file pathYesPath to a Go test file under tests/e2e/, e.g. tests/e2e/network/ensureloadbalancer.go
Test nameNoName of a specific It(...) block to replay. If omitted, list all test cases and ask which one(s) to run
--skip-context-checkNoSkip the interactive cluster confirmation prompt

Workflow

Replace <SKILL_DIR> with the path to this skill directory.

Step 1 — Confirm Cluster Context

Unless --skip-context-check is passed:

bash
python3 <SKILL_DIR>/scripts/check_context.py

This displays the current kube context, cluster endpoint, and Azure subscription. Ask the user to confirm this is the correct cluster before proceeding. If the user says no, stop and ask them to switch context.

Step 2 — Analyze the Test
bash
python3 <SKILL_DIR>/scripts/analyze_test.py <test-file-path> [--test-name "<test name>"] [--json]

This parses the Go test file and outputs a structured plan with:

  • variables: Go const/var declarations (deployment names, service names, labels, ports) extracted from the file — use these to resolve ${VAR} placeholders in emitted commands
  • setup: BeforeEach steps (namespace, deployment, Azure client init)
  • test_cases: list of It(...) blocks, each with ordered steps
  • teardown: AfterEach cleanup steps

Each step includes:

  • type: k8s_create, k8s_update, k8s_delete, k8s_wait, az_create, az_read, az_delete, az_wait, connectivity_check, assertion, phase
  • description: human-readable explanation
  • command: suggested CLI command(s)
  • wait: polling parameters if applicable
  • verify: what to check in the output

Use --json to get machine-readable JSON output instead of the human-readable format:

bash
python3 <SKILL_DIR>/scripts/analyze_test.py tests/e2e/network/ensureloadbalancer.go --json

If --test-name is provided, only that test case is included. Otherwise all test cases are listed.

Variable Resolution

The variables field in the JSON output lists Go constants and variable declarations extracted from the test file header. Use them to populate ${VAR} placeholders in the emitted commands. For example, if the output contains "testBaseName": "service-lb", substitute ${DEPLOYMENT_NAME} with the value derived from that constant. Some variables may reference other Go symbols — in that case, read the test source to resolve the chain.

Step 3 — Review the Plan

Present the extracted plan to the user. For each test case show:

  1. Setup steps (namespace, deployment, pre-created Azure resources)
  2. Test body steps in order
  3. Verification checks
  4. Cleanup steps

Ask the user to confirm before executing. They may choose to skip certain steps or modify parameters.

Step 4 — Execute Setup

Run the setup steps:

  1. Create namespace: kubectl create namespace <generated-name>
  2. Create deployment: generate YAML from the test's deployment manifest and kubectl apply -f -
  3. Wait for pods: kubectl wait --for=condition=ready pod -l <labels> -n <ns> --timeout=5m
  4. Pre-create Azure resources (if needed): PIPs, subnets, IP prefixes via az network ... commands

Track all created resources for cleanup.

If any setup step fails:

  1. Run the diagnostic command from the Error Handling section
  2. Report the error with diagnostic output
  3. Ask the user whether to clean up now (jump to Step 6) or keep the environment for manual investigation
  4. Do not proceed to Step 5
Step 5 — Execute Test Steps

For each step in the test body:

  1. Create/update K8s resources: generate YAML, kubectl apply -f -
  2. Wait for conditions: poll with the timeouts from the test
    • Service IP: kubectl get svc -n <ns> <name> -o jsonpath='{.status.loadBalancer.ingress[*].ip}'
    • Poll every 10s, timeout per test constants (typically 5m for Standard LB)
  3. Verify Azure state: run az commands and check output matches assertions
  4. Connectivity checks: kubectl exec <exec-pod> -- nc -vz -w 4 <ip> <port>
  5. Report results: for each assertion, show PASS/FAIL with actual vs expected

Before executing, read references/INDEX.md (the patterns index). For each step in the plan, match the step's description keywords and step_type against the index to identify which sections of references/patterns.md are needed. Read only those sections using the line ranges from the index. Do not read the entire patterns.md file.

On step failure, follow the Failure Flow waterfall in the Error Handling section. Key behaviors:

  • Transient errors (429, 409, 5xx, timeout): retry per the retry policy
  • Poll timeout (condition never met): record as assertion FAIL
  • Assertion/verification mismatch: record FAIL with actual vs expected, run diagnostics, then ask the user whether to (a) continue, (b) pause for investigation, (c) abort to cleanup, or (d) re-check
  • Non-recoverable errors: stop and jump to Step 6
Step 6 — Cleanup

Run cleanup in reverse order:

  1. Delete K8s services
  2. Delete K8s deployments
  3. Delete pre-created Azure resources (PIPs, subnets, prefixes)
  4. Delete namespace

Always offer cleanup even if a step failed. Track which resources were actually created to avoid deleting things that don't exist.

If a cleanup step fails:

  1. Retry the deletion once after 30s
  2. If it still fails, log the resource as orphaned and continue to the next cleanup step
  3. Include all orphaned resources in the Step 7 report
Step 7 — Report

Summarize the execution:

Always include:

  • Total steps executed: N
  • Passed assertions: N
  • Failed assertions: N

Include if any failures occurred:

  • Skipped steps: N (with reason for each)
  • For each failure:
    • Step description
    • Expected vs actual
    • Diagnostic output (if collected)
  • Infrastructure errors encountered
  • Re-checked assertions: N (list step name, attempts before pass or final fail)

Always include:

  • Resources created: list
  • Resources cleaned up: list
  • Orphaned resources: list (if any cleanup failed)

Bundled Resources

  • scripts/check_context.py — display and validate current kube/Azure context
  • scripts/analyze_test.py — parse Go e2e test file into structured replay plan
  • references/INDEX.md — generated keyword and step-type index into patterns.md; read this first to find which sections to load
  • references/patterns.md — comprehensive mapping of Go e2e test patterns to kubectl and az CLI commands, including manifest templates and polling patterns
  • scripts/gen_patterns_index.py — regenerate references/INDEX.md from keyword annotations in patterns.md

Error Handling

Error Categories
CategoryExamplesBehavior
Infrastructurekubectl/az not found, cluster unreachable, Azure token expired, RBAC deniedStop immediately. Report error. Jump to Step 6 (Cleanup) for already-created resources.
Setup failurePods stuck Pending/CrashLoopBackOff, PIP quota exceeded, subnet conflictStop. Run diagnostics. Report findings. Jump to Step 6. Do not proceed to Step 5.
Skip conditionCluster is Basic LB but test requires Standard, wrong node pool type, VMSS-only test on non-VMSSSkip the test. Report SKIP with reason. No cleanup needed (nothing was created for this test).
Assertion failureLB rules don't match, NSG rule missing, wrong probe config, connectivity timeout, poll timeoutRecord FAIL with actual vs expected. Run the matching diagnostic from the Diagnostics table. Ask the user: (a) Continue — skip dependent steps, proceed to next; (b) Pause — keep environment for manual investigation; (c) Abort — jump to Step 6; (d) Re-check — re-run this step's verification.
Cleanup failureResource in use, namespace stuck Terminating, deletion timeoutWarn. Retry once after 30s. List orphaned resources in final report. Continue to next cleanup step.
Retry Policy

Retry transient errors before classifying as a failure:

Error PatternRetryWait
K8s API 409 (Conflict) — service/resource updateYes, 5×~100ms, 200ms, 400ms, 800ms, 1s (match retry.DefaultRetry)
Azure 429 (TooManyRequests)Yes, 3×Honor Retry-After header; fall back to 60s, 120s, 240s
Azure 409 (Conflict) — resource being modifiedYes, 3×10s, 20s, 40s
K8s/Azure 5xx (InternalError, ServerTimeout)Yes, 3×15s, 30s, 60s
kubectl connection timeoutYes, 3×15s, 30s, 60s
Auth/RBAC errorsNo—
Quota exceededNo—
Resource not found (404)No—
Show full SKILL.md (761 more words)Show less
Diagnostics

When a step fails, run the relevant diagnostic before reporting:

FailureDiagnostic
Pod stuck Pendingkubectl describe pod -l app=${LABEL} -n $NS — check Events section
Pod CrashLoopBackOffkubectl logs -l app=${LABEL} -n $NS --previous --tail=20
Service no external IPkubectl describe svc $SVC_NAME -n $NS — check Events section
Connectivity timeoutkubectl get endpoints $SVC_NAME -n $NS — check if endpoints exist
Azure resource not foundaz resource show -g $RG -n <exact-name> --resource-type <type> -o json
LB provisioning stuckaz network lb show -g $RG -n $LB_NAME --query provisioningState -o tsv
PIP allocation failureaz network public-ip show -g $RG -n $PIP_NAME --query provisioningState -o tsv
Node issueskubectl describe node <node-name> — check Conditions and Events

When reporting diagnostic output, redact values of environment variables whose names contain SECRET, PASSWORD, TOKEN, KEY, or CONNECTION_STRING. Truncate log output to 20 lines.

Resource Tracking

Track all resources created during execution in your working memory:

Created resources:
  k8s: namespace/e2e-test-abc123
  k8s: deployment/deployment-lb-test (ns: e2e-test-abc123)
  k8s: service/svc-test (ns: e2e-test-abc123)
  k8s: pod/exec-agnhost (ns: e2e-test-abc123)
  az:  public-ip/pip-test (rg: mc_mygroup)

Include both directly created resources (from your commands) and indirectly created ones (discovered via az queries after Service creation — e.g., LB rules, NSG rules, PIP allocated by the cloud controller manager).

On early exit, use this list for targeted cleanup in Step 6.

If the agent session is interrupted during a pause, created resources become orphans. Re-run cleanup manually using the namespace name and resource names from the test's variable declarations.

Failure Flow

When a command fails, evaluate in this order:

  1. Is it retryable? Check the retry table. If yes, retry.

  2. Is it an infrastructure error? (auth, cluster unreachable, command not found) → Stop. Report error. Jump to Step 6.

  3. Is it a setup step failure? (Step 4) → Stop. Run diagnostics. Report. Jump to Step 6.

  4. Is it a poll timeout? (wait for condition that never became true) → Treat as assertion failure.

  5. Is it an assertion/verification failure? → Record FAIL with actual vs expected. Run the matching diagnostic from the Diagnostics table. Ask the user:

    • (a) Continue: skip dependent steps, proceed to next independent step
    • (b) Pause: keep environment alive for manual investigation; suggest the diagnostic command, the failed step's verification command, and 1–2 exploratory commands for the resource under test; wait for user to say "continue", "re-check", or "abort"
    • (c) Abort: jump to Step 6 (Cleanup)
    • (d) Re-check: re-run this step's verification (including waits/polls); if it passes, clear the FAIL and proceed normally (do not skip dependent steps); if it fails again, re-present the same 4 options; after 3 re-check failures on the same step, warn that repeated re-checks are failing and suggest aborting

    Batch mode: if more than 2 assertion failures have occurred in the current test case and the user selects Continue, offer: "Multiple assertions are failing. (a) Keep pause-on-failure, (b) Switch to auto-continue (record all remaining FAILs without pausing), (c) Abort to cleanup."

    Pause warnings:

    • ⚠️ The cluster and Azure resources remain live during the pause. Cloud controllers and Azure reconciliation may modify resources (LB rules, NSG rules, endpoints).
    • Azure resources created by this test remain provisioned and billable during the pause.
    • If the pause exceeds 10 minutes, remind the user that the environment may have changed and suggest re-running diagnostics.

To identify dependent steps, check if a subsequent step uses a variable produced by the failed step. For example, if "Wait for service external IP" fails (no IP assigned), skip "Verify connectivity to service IP" since it depends on having a valid IP.

  1. Is it a cleanup failure? → Warn, retry once, log orphan, continue.

Limitations

  • The analysis script uses pattern matching on Go source, not a full Go parser. It handles the standard Ginkgo patterns used in this repo (Describe, When, Context, It, BeforeEach, AfterEach, By). Unusual or deeply nested test structures may need manual interpretation by the agent.
  • By(...) annotations are emitted as phase type steps rather than merged into other steps. The agent should use them as context markers.
  • Annotation resolution relies on a static map. If a test uses an annotation constant not in the map, the raw consts.XxxAnnotation name is emitted. Check pkg/consts/consts.go for the string value.
  • The variables field captures simple const/var string assignments. It does not evaluate Go expressions or resolve cross-references.
  • Commands use sed for POSIX-portable field extraction (no GNU grep -oP).

Notes

  • The agent should read references/patterns.md when it encounters a pattern not covered by the analysis script output.
  • Azure resource group is discovered from node providerID: kubectl get nodes -o jsonpath='{.items[0].spec.providerID}' → parse RG name.
  • Some tests require specific environment conditions (Standard LB, AKS cluster, VMSS node pools). The analysis script flags these as skip conditions that the agent should check before executing.

© kubernetes-sigs, 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

SKILL.md and 5 other files (scripts, references) in .agents/skills/run-e2e-test of kubernetes-sigs/cloud-provider-azure.

  • SKILL.md
  • references/INDEX.md
  • references/patterns.md
  • scripts/analyze_test.py
  • scripts/check_context.py
  • scripts/gen_patterns_index.py

Open the folder on GitHubat commit 0201852

Compare with similar skills

Run E2E Test 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.

Run E2E Test compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Run E2E Test this skillkubernetes-sigs/cloud-provider-azure294—~3.8kAutomated safety check: PassApache-2.0
Must Gather Investigationscylladb/scylla-operator401—~2.4kAutomated safety check: PassApache-2.0
Kaniop Developmentpando85/kaniop131—~3.1kAutomated safety check: PassAGPL-3.0
Azureml K3s Compute Target Setupmicrosoft/physical-ai-toolchain123—~5.7kAutomated safety check: NotesMIT
Provider Bug Reviewmondoohq/mql412—~2.9kAutomated safety check: PassCustom licence
Aspire MonitoringCommunityToolkit/Aspire629—~3.5kAutomated safety check: PassMIT

Similar skills

  • Must Gather Investigation

    scylladb/scylla-operator

    Investigate failed e2e tests from Ginkgo JSON reports and must-gather artifacts, systematically analyzing logs, events, and resource states to identify root causes.

    401 GitHub stars~2.4k tokensUpdated today
    Testing & QAAuto-check passed
  • Kaniop Development

    pando85/kaniop

    Kaniop architecture, Rust controller conventions, commands, testing, and repository workflows.

    131 GitHub stars~3.1k tokensUpdated today
    Testing & QAAuto-check passed
  • Azureml K3s Compute Target Setup

    microsoft/physical-ai-toolchain

    Official

    Set up a K3s cluster on an NVIDIA GPU host, connect it to Azure Arc, and configure Azure ML to use it as a Kubernetes compute target.

    123 GitHub stars~5.7k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Deep static code review of an mql provider for logic errors, nil-handling bugs, pagination truncation, caching/id collisions, and other defects that silently give users wrong data.

    412 GitHub stars~2.9k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Aspire Monitoring

    CommunityToolkit/Aspire

    ANALYSIS SKILL - Observe Aspire apps: logs, traces, metrics, resource state, telemetry export, browser telemetry, and the standalone dashboard.

    629 GitHub stars~3.5k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Guides deployment and management of Kubernetes clusters with kcli.

    653 GitHub stars~1.5k tokensUpdated today
    DevOps & CloudAuto-check passed

More from kubernetes-sigs/cloud-provider-azure

All 12 skills in this repo
  • Build Images

    kubernetes-sigs/cloud-provider-azure

    Official

    Build cloud-provider-azure container images through the repo Makefile with explicit IMAGETAG and IMAGEREGISTRY inputs, optional make flag overrides, and opt-in bounded Docker or Podman retries.

    294 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Cherry Pick PR

    kubernetes-sigs/cloud-provider-azure

    Official

    Cherry-pick a merged pull request onto a release branch with Prow-style branch naming, manual conflict resolution, targeted validation, and GitHub PR creation.

    294 GitHub stars~636 tokensUpdated today
    Auto-check passed
  • Create Release Note Doc PR

    kubernetes-sigs/cloud-provider-azure

    Official

    Generate or update the documentation-site release note for a given tag, commit it on a branch, push it to a writable remote, and open a GitHub PR to the docs branch.

    294 GitHub stars~768 tokensUpdated today
    Auto-check passed
  • Create Release Tags

    kubernetes-sigs/cloud-provider-azure

    Official

    Create and optionally push the next Kubernetes-style release tag (vX.Y.Z) from a release-X.Y branch by resolving the remote branch tip, computing the next patch tag, and tagging the commit directly…

    294 GitHub stars~574 tokensUpdated today
    Auto-check passed
  • Cve Remediator V2

    kubernetes-sigs/cloud-provider-azure

    Official

    Raise Go modules to caller-supplied minimum fixed versions from CVE/GO findings in any format, per tracked module root, sync go.mod/go.sum and root vendor/, audit the source module graphs, run the…

    294 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Debug E2E Pipeline

    kubernetes-sigs/cloud-provider-azure

    Official

    Fetch and analyze Prow e2e pipeline failures for cloud-provider-azure.

    294 GitHub stars~3.4k tokensUpdated today
    Auto-check passed

Categories

Questions about Run E2E Test

What does Run E2E Test do?

Parse a Go e2e test from tests/e2e/, translate each step to kubectl and az CLI commands, and interactively replay the test against a live cluster. Run E2E Test is an agent skill from kubernetes-sigs/cloud-provider-azure, published by the product's own GitHub organization. Parse a Go e2e test from tests/e2e/, translate each step to kubectl and az CLI commands, and interactively replay the test against a live cluster.

When should I use Run E2E Test?

Run E2E Test fits situations like: the user wants to manually run; reproduce an e2e test case; they mention replaying a test; running a test against a cluster.

How do I install Run E2E Test in Claude Code?

Run `npx skills add kubernetes-sigs/cloud-provider-azure --skill run-e2e-test -a claude-code`. Or copy the skill folder (.agents/skills/run-e2e-test in kubernetes-sigs/cloud-provider-azure) into .claude/skills/run-e2e-test in your project. Claude Code loads it when a task matches its description.

How do I install Run E2E Test in Codex?

Run `npx skills add kubernetes-sigs/cloud-provider-azure --skill run-e2e-test -a codex`. Or copy the skill folder (.agents/skills/run-e2e-test in kubernetes-sigs/cloud-provider-azure) into .agents/skills/run-e2e-test in your project. Codex loads it when a task matches its description.

Can I use Run E2E Test 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 kubernetes-sigs/cloud-provider-azure --skill run-e2e-test -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/run-e2e-test, .gemini/skills/run-e2e-test, .github/skills/run-e2e-test and .opencode/skills/run-e2e-test in your project.

What does Run E2E Test need to run?

Going by SKILL.md and its folder, Run E2E Test needs Python for the scripts in its folder and the command-line tools its instructions call (kubectl, az and python3). Our summary lists: Python 3.

Does Run E2E Test access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Run E2E Test safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Run E2E Test use?

Run E2E Test 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 Run E2E Test use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.1k tokens, read only when the agent opens those files.

What are the alternatives to Run E2E Test?

Skills that share tags, products or a category with Run E2E Test: Must Gather Investigation (scylladb/scylla-operator, 401 stars), Kaniop Development (pando85/kaniop, 131 stars), Azureml K3s Compute Target Setup (microsoft/physical-ai-toolchain, 123 stars) and Provider Bug Review (mondoohq/mql, 412 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Run E2E Test?

kubernetes-sigs (a GitHub organization, an official publisher) maintains it in kubernetes-sigs/cloud-provider-azure, which has 294 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 9, 2026.

Source: kubernetes-sigs/cloud-provider-azure on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.