@cat-factory/eks 0.1.201 → 0.1.203

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +9 -10
  2. package/package.json +4 -4
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @cat-factory/eks
2
2
 
3
- Opt-in AWS **EKS** backends for cat-factory a runner backend (per-run agent pods) and an
3
+ Opt-in AWS **EKS** backends for cat-factory: a runner backend (per-run agent pods) and an
4
4
  ephemeral-environment backend (per-PR namespaces), both on an Amazon EKS cluster.
5
5
 
6
6
  ## Why this is a thin package
@@ -9,7 +9,7 @@ An EKS cluster's API server **is** a standard Kubernetes API server, so this pac
9
9
  the entire native Kubernetes transport/provider** from `@cat-factory/integrations`
10
10
  (`KubernetesRunnerTransport`, `KubernetesEnvironmentProvider`, `KubernetesApiClient`) verbatim.
11
11
  The only EKS-specific piece is **authentication**: EKS doesn't use a static ServiceAccount
12
- bearer token it expects a short-lived IAM token (a SigV4-presigned STS `GetCallerIdentity`
12
+ bearer token; it expects a short-lived IAM token (a SigV4-presigned STS `GetCallerIdentity`
13
13
  URL, prefixed `k8s-aws-v1.`, the exact token `aws eks get-token` produces). That token is
14
14
  minted here with WebCrypto (`eks-auth.logic.ts`), so the package carries **no runtime AWS SDK
15
15
  dependency** and is runtime-neutral. It's injected through the async token seam
@@ -28,7 +28,7 @@ registries.environmentBackendRegistry.register(eksEnvironmentBackend)
28
28
  ```
29
29
 
30
30
  A workspace then connects an `eks` runner/environment backend with an `EksRunnerConfig` /
31
- `EksProvisionConfig` (the Kubernetes config apiserver endpoint, CA, namespace, image plus
31
+ `EksProvisionConfig` (the Kubernetes config of apiserver endpoint, CA, namespace, and image, plus
32
32
  `region` + `clusterName`), and the AWS credentials (`awsAccessKeyId` / `awsSecretAccessKey` /
33
33
  optional `awsSessionToken`) in the write-only secret bundle.
34
34
 
@@ -37,7 +37,7 @@ Both facades register the backends by reference (`backend/runtimes/node/src/cont
37
37
  with the native `kubernetes` backend they extend.
38
38
 
39
39
  > **Runtime reach.** A real EKS cluster's apiserver presents a **private CA**, which only a
40
- > runtime that can pin a custom CA (Node/local, via `undici`) can verify the SAME constraint a
40
+ > runtime that can pin a custom CA (Node/local, via `undici`) can verify: the SAME constraint a
41
41
  > private-CA `kubernetes` connection already carries. The Worker registers the `eks` kind for
42
42
  > symmetry, but a connection to such a cluster is rejected up front at registration when the
43
43
  > runtime can't honor the custom CA (`customTlsSupported: false`), so it fails loudly rather than
@@ -47,16 +47,15 @@ with the native `kubernetes` backend they extend.
47
47
 
48
48
  The **runner** backend is a first-class UI citizen: it self-describes its connect form via the
49
49
  `RunnerBackendProvider.form` descriptor, so the SPA renders it generically (region / cluster /
50
- credentials + the shared apiserver fields) with **no** EKS-specific frontend code the same
50
+ credentials + the shared apiserver fields) with **no** EKS-specific frontend code, the same
51
51
  descriptor-driven path the built-in Kubernetes runner backend now uses.
52
52
 
53
53
  The **environment** backend is functional when resolved by kind, but is not yet surfaced as its
54
54
  own first-class environment _engine_ in the SPA infra-handler selector (the connect flow would
55
55
  lower to `{ kind: 'eks' }` rather than `{ kind: 'kubernetes' }`). That needs a dedicated
56
- `InfraEngine('eks')` threaded through the contract engine union + `handlerConfigToBackendConfig`
57
-
58
- - the per-provision-type SPA forms — tracked in
59
- [`docs/initiatives/descriptor-driven-infra-forms.md`](../../../docs/initiatives/descriptor-driven-infra-forms.md).
56
+ `InfraEngine('eks')` threaded through the contract engine union + `handlerConfigToBackendConfig` +
57
+ the per-provision-type SPA forms; tracked in
58
+ [`docs/initiatives/descriptor-driven-infra-forms.md`](../../../docs/initiatives/descriptor-driven-infra-forms.md).
60
59
 
61
60
  ## Tests
62
61
 
@@ -89,4 +88,4 @@ pnpm --filter @cat-factory/eks run test:integration
89
88
 
90
89
  The `stsHost` override (`EKS_IT_STS_HOST` → the config's `stsHost`) points the presigned STS
91
90
  `GetCallerIdentity` URL at floci instead of real AWS. See `src/test-support/eks-cluster.ts` for the
92
- full env list and for exactly what floci does and does not cover at the auth layer.
91
+ full env list and for exactly what floci does, and does not, cover at the auth layer.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/eks",
3
- "version": "0.1.201",
3
+ "version": "0.1.203",
4
4
  "description": "Opt-in AWS EKS runner + environment backends for cat-factory. Reuses the native Kubernetes transport/provider behind a SigV4-presigned STS (IAM) apiserver token.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,9 +24,9 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "@cat-factory/contracts": "0.213.0",
28
- "@cat-factory/integrations": "0.117.1",
29
- "@cat-factory/kernel": "0.216.0"
27
+ "@cat-factory/contracts": "0.215.0",
28
+ "@cat-factory/integrations": "0.118.0",
29
+ "@cat-factory/kernel": "0.218.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/node": "^26.1.2",