@cat-factory/eks

中文文档
0.1.425发布于 2026/11/06TypeScriptES Module构建来源已验证近 30 天下载 5470

Opt-in AWS EKS跑道+环境后端为猫构件. 重新使用由 SigV4 指定的 STS (IAM) apiserver 令牌背后的本地 Kubernetes 运输/提供商.

中文使用文档
文档目录5 节
  1. 为什么这个包裹很薄
  2. 扶持它
  3. UI 到达
  4. 测试
  5. 运行集成套装套装套装以对抗花花

@ cat- factory/ eks (中文(简体) )

预选AWS 埃克萨斯 cat-factory 的后端:跑步后端(每个运行的代理舱)和一个 ephemeral-Environment后端(per-PR取名空间),均位于亚马逊EKS集群上.

为什么这个包裹很薄

EKS 集群的 API 服务器 实值 一个标准的 Kubernetes API 服务器,所以这个软件包 重复使用 整个本地的Kubernetes运输/供应商 从 @cat-factory/integrations (单位:千美元)KubernetesRunnerTransport, (中文(简体) ), KubernetesEnvironmentProvider, (中文(简体) ), KubernetesApiClient逐字记录. 唯一的EKS特有作品是 认证: EKS 不使用静态服务账户 无记名代号; 它期望一个寿命短的 IAM 代号( 由 SigV4 指定的 STS) GetCallerIdentity URL, 前缀 k8s-aws-v1.,准确的符号 aws eks get-token 生产)。 那个标志是 在这里用WebCrypto(eks-auth.logic.ts),所以包裹携带 无运行时间 AWS SDK 依赖性 并且运行时间中立。 它通过Aync符号接缝注射 KubernetesApiClient 曝光,因此没有运输逻辑重复.

扶持它

后门是 没有 在默认的登记簿中(保持AWS无限制)。 外观选择 登记他们 参考文献 从它的构成根( 节点/ 局部外观已经做了) 这个在 backend/runtimes/node/src/container.ts:

import { eksRunnerBackend, eksEnvironmentBackend } from '@cat-factory/eks'
registries.runnerBackendRegistry.register(eksRunnerBackend)
registries.environmentBackendRegistry.register(eksEnvironmentBackend)

工作空间然后连接一个 eks 运行/环境后端带有一个 EksRunnerConfig 编号 : EksProvisionConfig (Kubernetes 配置 Apiserver 端点, CA, 命名空间, 和图像, + region + 键 clusterName),以及AWS证书(EawsAccessKeyId 编号 : awsSecretAccessKey 编号 : 选项 awsSessionToken)在只写后缀中.

两个外观都通过引用来注册后端( Namebackend/runtimes/node/src/container.ts 财务报告和审定财务报表 backend/runtimes/cloudflare/src/infrastructure/container.ts),保持运行时间对称 与当地人 kubernetes 他们的后端延伸.

运行时间到达. 一个真正的 EKS 集群的 apiserver 呈现一个 私营 CA,仅此 可给自定义 CA( 节点/ 本地, 途径) 绑定的运行时间 undici)可以核实:SME约束a 私营 kubernetes 连接已经携带。 工人登记 eks 类型用于 对称性,但与此类集群的连接在注册时在前面被拒绝 运行时间不能遵守自定义 CA( R)customTlsSupported: false)),因此它大叫地失败,而不是 初发时默然.

UI 到达

这个 运行 后端是一等UI公民:它通过 RunnerBackendProvider.form 描述符,所以SPA使其通用(区域/组/) 证书 + 共享服务器字段) 没有 EKS 专用前端代码, 相同 现在使用的已内置的 Kubernetes 后端路径 .

这个 环境 后端在按类型解决时具有功能,但尚未被浮出水面 拥有一等环境 引擎 在 SPA 次手选择器中(连接流将) 下至 { kind: 'eks' } 而不是说 { kind: 'kubernetes' }) (中文(简体) ). 那需要一个专注的 InfraEngine('eks') 通过合同引擎联盟 + handlerConfigToBackendConfig + 键 按规定类型的SPA表格 docs/initiatives/descriptor-driven-infra-forms.md。 。 。 .

测试

  • 单位 (单位:千美元)pnpm --filter @cat-factory/eks test:run,在所需的 CI 门内运行: SigV4/STS 令牌 薄荷金向量 + the { kind: 'eks' } 合同往返。 无集群.
  • 一体化 (单位:千美元)pnpm --filter @cat-factory/eks test:integration: 驱动 EKS 运输/提供者对a 真实 食人鱼 自动滑行,除非 EKS_IT_* 已经设定。 运行在 页:1 无阻断 test-eks CI 任务( 见 .github/workflows/ci.yml) (中文(简体) ).

运行集成套装套装套装以对抗花花

软体 是一个本地的、 localStack 兼容的 AWS 模拟器, 它的 EKS “ 真实模式 ” 站起来 每个 EKS 集群的活性 k3s 容器 并在主机上曝光其 Kubernetes API 服务器 端口 。 Boot floci(被固定在这个套件被验证的版本上),与 AWS CLI,然后导出连接 :

docker run -d --name floci -p 4566:4566 -v /var/run/docker.sock:/var/run/docker.sock -u root floci/floci:1.5.30
export AWS_ACCESS_KEY_ID=test AWS_SECRET_ACCESS_KEY=test AWS_DEFAULT_REGION=us-east-1
aws --endpoint-url=http://localhost:4566 eks create-cluster --name cat-factory-it \
  --role-arn arn:aws:iam::000000000000:role/eks --resources-vpc-config '{}'
# ...wait for ACTIVE, then read endpoint + CA:
export EKS_IT_APISERVER=$(aws --endpoint-url=http://localhost:4566 eks describe-cluster --name cat-factory-it --query cluster.endpoint --output text)
export EKS_IT_REGION=us-east-1 EKS_IT_CLUSTER_NAME=cat-factory-it
export EKS_IT_ACCESS_KEY_ID=test EKS_IT_SECRET_ACCESS_KEY=test
export EKS_IT_STS_HOST=localhost:4566 EKS_IT_INSECURE=1
export EKS_IT_RUNNER_IMAGE=cat-factory-mock-harness:it   # runner suite only
pnpm --filter @cat-factory/eks run test:integration

这个 stsHost 覆盖( r)EKS_IT_STS_HOST {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}你觉得呢 stsHost) 指标预先签名的STS GetCallerIdentity URL在 floci 而不是真正的 AWS 。 见 src/test-support/eks-cluster.ts 联 合 国 完全的内存列表 和确切的floci做什么, 不,覆盖在认证层.

版本与发布记录

@cat-factory/eks 共发布 410 个版本,首次发布于 2026/07/05;过去 12 个月发布了 410 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.425latest2026/11/062 天前
0.1.4242026/11/045 天前
0.1.4232026/11/045 天前
0.1.4222026/11/045 天前
0.1.4212026/11/045 天前
0.1.4202026/11/045 天前

关于 @cat-factory/eks 的常见问题

@cat-factory/eks 是什么?

Opt-in AWS EKS跑道+环境后端为猫构件. 重新使用由 SigV4 指定的 STS (IAM) apiserver 令牌背后的本地 Kubernetes 运输/提供商.

如何安装 @cat-factory/eks?

在项目目录运行 npm install @cat-factory/eks,或使用 pnpm add / yarn add / bun add。

@cat-factory/eks 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cat-factory/eks 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cat-factory/eks 可以商用吗?

@cat-factory/eks 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@cat-factory/eks 的下载量有多少?

根据 npm 官方下载统计,@cat-factory/eks 在 2026/10/09 – 2026/11/07 这 30 天内被下载 5,470 次,日均约 182 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cat-factory/eks 还在维护吗?

最新版本 0.1.425 发布于 2026/11/06(2 天前);至今共发布 410 个版本,其中过去 12 个月发布了 410 个;首次发布于 2026/07/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。