mcpField
A
antithesis-setup-k8s

antithesis-setup-k8s

github.com/antithesishq测试与质量302304 次安装1 周前更新
代码仓库

关于 antithesis-setup-k8s

用于为 Kubernetes 系统搭建 Antithesis 测试框架的技能,面向已有 Kubernetes 制品和镜像的项目。它将模板整理为精简的原始清单,并通过分类和验证流程完善配置。

主要功能

  1. 01初始化 antithesis/ 目录
  2. 02生成 Kubernetes 原始清单
  3. 03分类并精简被测系统配置
  4. 04运行 snouty validate
  5. 05可在本地 Kubernetes 环境验证

适用场景

  1. 01将 Helm 或 Kustomize 模板转为测试清单
  2. 02为 Antithesis 准备最小化的 Kubernetes 被测系统
  3. 03检查清单并验证本地部署

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/antithesishq/antithesis-skills --skill antithesis-setup-k8s

安装后在 Claude Code 中输入/antithesis-setup-k8s确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
apply-findings.md
directory-init.md
horizontal-classification.md
landmines.md
manifests.md
operator-recipes.md
submit.md
validate-local.md
validate-snouty.md
vertical-classification.md

详细介绍

Antithesis K8s 设置

技能版本: 2026-10-21 4f8d80b

目的和目标

搭建 antithesis/ 测试框架,使系统能够在 Antithesis 中启动并处于基本空闲、就绪状态。

成功标准:

  • 部署定义位于 antithesis/config/manifests/,并引用所需的 SUT 镜像。这里仅使用原始 Kubernetes 清单(不使用 helm 或 kustomize)
  • antithesis/config/manifests/ 是基于 k8s 的 SUT 的精简配置,也是 Antithesis 运行所必需的配置
  • antithesis/config/ 上的 snouty validate 执行成功
  • 测试框架已准备就绪,可供 antithesis-workload 技能添加或迭代测试模板、断言和工作负载代码
  • 如果用户要求提交或启动运行,请使用 antithesis-launch 技能,不要直接运行 snouty launch

前置条件

  • 用户必须拥有一组 Kubernetes 工件,可以是 helm chart、kustomize 模板或 Kubernetes 清单。

    • 如果用户有 helm chart,必须提供一个可填入该 helm chart 的 values 文件。文件可以是标准的 values.yaml、带有 values 字段的 ArgoCD Application,或带有 values 字段的 FluxCD HelmRelease。
    • 如果用户有一组 helm charts,请确定其中哪些(理想情况下为一个或几个,可组成一个独立应用)将作为 Antithesis 中的被测系统。可能需要询问用户想选哪一个。不要自行推断唯一的目标 SUT。
  • 用户必须已将镜像推送到 antithesis registry,或使用公共镜像。需要推送的镜像包括运行模板化 helm chart 所需的全部镜像。相关说明见 references/manifests.md。

  • 如果未安装 snouty,请勿继续。安装选项见 https://raw.githubusercontent.com/antithesishq/snouty/refs/heads/main/README.md。

  • 如果 snouty 版本低于 0.8.0,请勿继续。使用 snouty --version 查看版本,并使用 snouty update 更新。

  • 此技能会运行 kubectl、kind、k3s、kapp,以操作活动的 Kubernetes 集群并验证清单能否在 Kubernetes 环境中启动。运行这些命令前请先询问用户。此技能只能操作自己创建的 Kubernetes 资源,并且必须在退出前清理所创建的所有资源。

  • 此技能可能需要运行 helm 或 kustomize 命令来生成清单。

文档依据

使用 antithesis-documentation 技能访问以下页面。优先使用 snouty docs。

  • Kubernetes 设置指南:https://antithesis.com/docs/getting_started/setup_guide/setup_k8s.md
  • Kubernetes 最佳实践:https://antithesis.com/docs/best_practices/k8s_best_practices.md
  • 处理外部依赖:https://antithesis.com/docs/reference/dependencies.md
  • 故障注入:https://antithesis.com/docs/product/fault_injection.md

工作流程

此技能分为多个步骤,每个步骤对应一个不同的参考文件。请按顺序逐一阅读并执行以下各参考文件,完成项目设置。每完成一个步骤,都要检查新获得的信息是否会推翻前面步骤中的任何决定;如果会,请返回相应步骤重新执行,然后再继续。水平分类和垂直分类要求有一个可在 apply-findings 阶段应用于清单的工作文件。请保留这些发现,以便在 Antithesis 中使用此设置时分析发生了哪些变化。

开始运行此技能时,询问用户是要从头开始,还是继续之前的迭代。

流程(按顺序运行;如果后续步骤与之前的步骤相矛盾,请重新执行较早的步骤)
  • references/directory-init.md:初始化 antithesis/ 目录。该目录将包含一组在 Antithesis 中运行的 Kubernetes 清单
  • references/manifests.md:将客户的 Kubernetes 模板生成的原始 Kubernetes 清单整理到 antithesis/config/manifests/
  • references/horizontal-classification.md:尝试确定系统中哪些部分是测试所必需的
  • references/vertical-classification.md:移除无法提升 Antithesis Kubernetes 体验的清单
  • references/apply-findings.md:将分类步骤得出的结果应用到清单,以简化设置
  • references/validate-snouty.md:对清单运行 snouty validate 并执行静态分析
  • references/validate-local.md:将 Kubernetes 清单部署到本地 k3s 集群,以确保 SUT 正常运行
  • references/submit.md:在本地测试并提交首次运行

流程的这些阶段并非单向关卡。如果任何阶段发现较早的分类判断有误,请返回并重新执行受影响的较早步骤,同时更新 working.md。

此外,用户可以跳过 validate-local.md 步骤。如果用户跳过某个步骤,请务必记录该步骤已跳过,并继续执行此技能。只有完成所有部分后,才能结束并说明任务已完成,不要提前退出。

参考目录(来自上述步骤)
  • references/landmines.md:指出会损害 Antithesis Kubernetes 体验的清单类型
  • references/operator-recipes.md:提供将 Operator 管理的自定义资源展开为基础资源的操作方法——在垂直分类期间使用

参考

SUT 被测系统。

snouty validate 使用此命令快速验证对 Antithesis 脚手架的更改。详情请参阅 snouty validate --help。

工作文件 贯穿各轮、不断扩展的产物(antithesis/scratchbook/k8s-minimization/working.md)

地雷 一种平台层构造,通常会被最小化处理,并有已知的处理方法(Istio、cert-manager、external-secrets 等)

评论

支持 Markdown