@vibesdotdev/infra-doks 0.0.1 → 0.0.2
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.
- package/README.md +9 -94
- package/dist/doks.plugin.js +14 -14
- package/dist/doks.plugin.js.map +1 -1
- package/dist/implementations/verdaccio.impl.d.ts.map +1 -1
- package/dist/implementations/verdaccio.impl.js +2 -25
- package/dist/implementations/verdaccio.impl.js.map +1 -1
- package/package.json +12 -13
- package/src/doks.plugin.ts +5 -5
- package/src/implementations/verdaccio.impl.ts +2 -26
- package/SPEC.md +0 -285
package/README.md
CHANGED
|
@@ -1,107 +1,22 @@
|
|
|
1
1
|
# @vibesdotdev/infra-doks
|
|
2
2
|
|
|
3
|
-
DigitalOcean
|
|
4
|
-
DigitalOcean / DOKS-flavored descriptor + implementation pairs the
|
|
5
|
-
runtime selects when scope resolves to a DO/cluster target.
|
|
3
|
+
DigitalOcean Kubernetes infrastructure adapter for Vibes deployment manifests.
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
This package is part of the public Vibes framework package set. The source repository is private while the public repository split is being prepared, so package documentation is published on the Vibes docs site.
|
|
8
6
|
|
|
9
7
|
## Install
|
|
10
8
|
|
|
11
9
|
```sh
|
|
12
10
|
bun add @vibesdotdev/infra-doks
|
|
11
|
+
# or
|
|
12
|
+
npm install @vibesdotdev/infra-doks
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
## Documentation
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
- Package guide: https://docs.vibes.dev/packages/infra-doks
|
|
18
|
+
- Vibes docs: https://docs.vibes.dev
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
import doksPlugin from '@vibesdotdev/infra-doks/plugin';
|
|
21
|
-
import { createRuntime } from '@vibesdotdev/runtime';
|
|
22
|
-
import infraPlugin from '@vibesdotdev/infra-core/plugin';
|
|
20
|
+
## License
|
|
23
21
|
|
|
24
|
-
|
|
25
|
-
await runtime.use(infraPlugin);
|
|
26
|
-
await runtime.use(doksPlugin);
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
`doksPlugin` depends on the `infra` plugin from `infra-core`. Activate
|
|
30
|
-
`infra-core` first so the kinds are registered before `doksPlugin` adds
|
|
31
|
-
its loaders.
|
|
32
|
-
|
|
33
|
-
## What's wired today
|
|
34
|
-
|
|
35
|
-
Only the `secrets/store` Vault pair. After bootstrap, the runtime can
|
|
36
|
-
resolve a HashiCorp Vault-backed `secrets/store` for environments
|
|
37
|
-
running inside a Kubernetes cluster:
|
|
38
|
-
|
|
39
|
-
```ts
|
|
40
|
-
import { getVibesSecretsClient } from '@vibesdotdev/secrets/runtime/client';
|
|
41
|
-
|
|
42
|
-
const secrets = await getVibesSecretsClient();
|
|
43
|
-
const dbPassword = await secrets.get('staging', 'POSTGRES_PASSWORD');
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
The Vault descriptor is `hardware: ['cloud']` only. It will not match on
|
|
47
|
-
consumer hardware. Auth uses (in order) descriptor `token`, the
|
|
48
|
-
`VAULT_TOKEN` env var, then exchanges the in-pod K8s service-account JWT
|
|
49
|
-
at `/var/run/secrets/kubernetes.io/serviceaccount/token` for a Vault
|
|
50
|
-
token via `/v1/auth/kubernetes/login`. All three failing throws.
|
|
51
|
-
|
|
52
|
-
Vault KV path layout matches the deployment Helm chart's secret groups:
|
|
53
|
-
`{mount}/app`, `{mount}/oauth`, `{mount}/artifacts`,
|
|
54
|
-
`{mount}/infrastructure`. New keys default to the `app` group.
|
|
55
|
-
|
|
56
|
-
## What's not wired (migration debt)
|
|
57
|
-
|
|
58
|
-
The K8s and DO managed-service generators are exported but not
|
|
59
|
-
registered against `infra/*` kinds yet. They are usable as standalone
|
|
60
|
-
functions, but consuming them this way bypasses the runtime selection
|
|
61
|
-
flow:
|
|
62
|
-
|
|
63
|
-
```ts
|
|
64
|
-
import { generateK8sDeployment } from '@vibesdotdev/infra-doks';
|
|
65
|
-
|
|
66
|
-
const manifest = generateK8sDeployment(workerDescriptor);
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
See [SPEC.md](./SPEC.md) → **Migration debt** for the path to wiring
|
|
70
|
-
these as descriptor + impl pairs (mirroring the
|
|
71
|
-
[`infra-cloudflare`](../infra-cloudflare) plugin layout).
|
|
72
|
-
|
|
73
|
-
## Vault tier mapping
|
|
74
|
-
|
|
75
|
-
The descriptor's `config.mount` is the default. At resolution time the
|
|
76
|
-
impl picks a mount per environment:
|
|
77
|
-
|
|
78
|
-
| `environment` | Vault mount |
|
|
79
|
-
| ------------- | ------------------- |
|
|
80
|
-
| `staging` | `staging` |
|
|
81
|
-
| `production` | `production` |
|
|
82
|
-
| anything else | `config.mount` (default `staging`) |
|
|
83
|
-
|
|
84
|
-
Override the default address or mount via the descriptor's `config`
|
|
85
|
-
record (string-valued, per the `secrets/store` schema).
|
|
86
|
-
|
|
87
|
-
## Tests
|
|
88
|
-
|
|
89
|
-
```sh
|
|
90
|
-
bun test packages/infra-doks
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Covers plugin shape and deterministic generator output. No live Vault,
|
|
94
|
-
Kubernetes, or DigitalOcean API access is exercised.
|
|
95
|
-
|
|
96
|
-
Type gate:
|
|
97
|
-
|
|
98
|
-
```sh
|
|
99
|
-
bun --bun tsc -p packages/infra-doks/tsconfig.json --noEmit
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
## Related
|
|
103
|
-
|
|
104
|
-
- [`infra-core`](../infra-core) — kinds and base schemas.
|
|
105
|
-
- [`infra-cloudflare`](../infra-cloudflare) — sibling Cloudflare adapter.
|
|
106
|
-
- [`secrets`](../secrets) — `secrets/store` kind, interface, default impl.
|
|
107
|
-
- [`deploy`](../deploy) — orchestration that consumes the manifests.
|
|
22
|
+
MIT
|
package/dist/doks.plugin.js
CHANGED
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
* Registers DigitalOcean Kubernetes infrastructure implementations with the runtime.
|
|
5
5
|
*/
|
|
6
6
|
import { createRuntimePlugin, createRuntimeImplementation, createRuntimeAsset } from '@vibesdotdev/runtime';
|
|
7
|
-
import { generateK8sDeployment, DoksDeploymentDescriptorSchema } from './implementations/deployment.impl
|
|
7
|
+
import { generateK8sDeployment, DoksDeploymentDescriptorSchema } from './implementations/deployment.impl';
|
|
8
8
|
import { stringify } from 'yaml';
|
|
9
9
|
import { resolve } from 'node:path';
|
|
10
|
-
import { generateK8sStatefulSet, DoksQueueDescriptorSchema, DoksDatabaseDescriptorSchema } from './implementations/statefulset.impl
|
|
11
|
-
import { generateDOManagedDB, DOManagedPostgresDescriptorSchema } from './implementations/managed-db.impl
|
|
12
|
-
import { generateDOManagedRedis, DOManagedRedisDescriptorSchema } from './implementations/managed-redis.impl
|
|
13
|
-
import { generateDOSpaces, DOSpacesDescriptorSchema } from './implementations/spaces.impl
|
|
14
|
-
import { generateGiteaManifest, GiteaDoksDescriptorSchema } from './implementations/gitea.impl
|
|
15
|
-
import { generateVerdaccioManifest, VerdaccioDoksDescriptorSchema } from './implementations/verdaccio.impl
|
|
16
|
-
import { createDoDropletImpl } from './implementations/droplet.impl
|
|
10
|
+
import { generateK8sStatefulSet, DoksQueueDescriptorSchema, DoksDatabaseDescriptorSchema } from './implementations/statefulset.impl';
|
|
11
|
+
import { generateDOManagedDB, DOManagedPostgresDescriptorSchema } from './implementations/managed-db.impl';
|
|
12
|
+
import { generateDOManagedRedis, DOManagedRedisDescriptorSchema } from './implementations/managed-redis.impl';
|
|
13
|
+
import { generateDOSpaces, DOSpacesDescriptorSchema } from './implementations/spaces.impl';
|
|
14
|
+
import { generateGiteaManifest, GiteaDoksDescriptorSchema } from './implementations/gitea.impl';
|
|
15
|
+
import { generateVerdaccioManifest, VerdaccioDoksDescriptorSchema } from './implementations/verdaccio.impl';
|
|
16
|
+
import { createDoDropletImpl } from './implementations/droplet.impl';
|
|
17
17
|
// Factory functions that wrap implementation generators in RuntimeImplementation
|
|
18
18
|
function createDeploymentImpl(input) {
|
|
19
19
|
const descriptor = DoksDeploymentDescriptorSchema.parse(input);
|
|
@@ -184,8 +184,8 @@ export default createRuntimePlugin({
|
|
|
184
184
|
return createGiteaImpl({
|
|
185
185
|
kind: 'infra/git-hosting',
|
|
186
186
|
id: 'gitea',
|
|
187
|
-
url: 'https://git.
|
|
188
|
-
hostname: 'git.
|
|
187
|
+
url: 'https://git.example.com',
|
|
188
|
+
hostname: 'git.example.com',
|
|
189
189
|
type: 'gitea',
|
|
190
190
|
storagePath: '/data',
|
|
191
191
|
authMethod: 'token',
|
|
@@ -195,7 +195,7 @@ export default createRuntimePlugin({
|
|
|
195
195
|
dropletSize: 's-2vcpu-2gb',
|
|
196
196
|
dockerImage: 'gitea/gitea:1.21',
|
|
197
197
|
volumeSizeGb: 50,
|
|
198
|
-
domain: 'git.
|
|
198
|
+
domain: 'git.example.com',
|
|
199
199
|
sshPort: 22,
|
|
200
200
|
httpPort: 3000
|
|
201
201
|
}
|
|
@@ -213,7 +213,7 @@ export default createRuntimePlugin({
|
|
|
213
213
|
return createVerdaccioImpl({
|
|
214
214
|
kind: 'infra/package-registry',
|
|
215
215
|
id: 'verdaccio',
|
|
216
|
-
url: 'https://packages.
|
|
216
|
+
url: 'https://packages.example.com',
|
|
217
217
|
registryType: 'npm',
|
|
218
218
|
scope: '@vibesdotdev',
|
|
219
219
|
upstreamUrl: 'https://registry.npmjs.org',
|
|
@@ -223,7 +223,7 @@ export default createRuntimePlugin({
|
|
|
223
223
|
adapter: 'verdaccio-doks',
|
|
224
224
|
dockerImage: 'verdaccio/verdaccio:5',
|
|
225
225
|
storageSize: '10Gi',
|
|
226
|
-
domain: 'packages.
|
|
226
|
+
domain: 'packages.example.com',
|
|
227
227
|
upstreamNpmUrl: 'https://registry.npmjs.org',
|
|
228
228
|
authEnabled: true
|
|
229
229
|
}
|
|
@@ -238,7 +238,7 @@ export default createRuntimePlugin({
|
|
|
238
238
|
description: 'DigitalOcean App Platform deploy client — creates/updates DO Apps from AppDeployment manifests.'
|
|
239
239
|
});
|
|
240
240
|
runtime.registerLoader('runtime/client', 'digitalocean-app-deploy', async () => {
|
|
241
|
-
const { DigitalOceanAppDeployClient } = await import('./client/digitalocean-app-deploy.client
|
|
241
|
+
const { DigitalOceanAppDeployClient } = await import('./client/digitalocean-app-deploy.client');
|
|
242
242
|
return { impl: DigitalOceanAppDeployClient };
|
|
243
243
|
});
|
|
244
244
|
// infra/artifact: K8s Deployment generator
|
package/dist/doks.plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doks.plugin.js","sourceRoot":"","sources":["../src/doks.plugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"doks.plugin.js","sourceRoot":"","sources":["../src/doks.plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verdaccio.impl.d.ts","sourceRoot":"","sources":["../../src/implementations/verdaccio.impl.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAI5B,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7D,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBxC,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACzF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,aAAa,CAAC;IAC1B,OAAO,EAAE,UAAU,CAAC;IACpB,GAAG,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAC5G,SAAS,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IACjH,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAChH;AAyFD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,4BAA4B,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"verdaccio.impl.d.ts","sourceRoot":"","sources":["../../src/implementations/verdaccio.impl.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAI5B,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7D,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBxC,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACzF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,aAAa,CAAC;IAC1B,OAAO,EAAE,UAAU,CAAC;IACpB,GAAG,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAC5G,SAAS,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IACjH,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAChH;AAyFD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,4BAA4B,GAAG,iBAAiB,CAgIhG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,4BAA4B;;GAUtE"}
|
|
@@ -108,7 +108,6 @@ export function generateVerdaccioManifest(input) {
|
|
|
108
108
|
const configKey = 'config.yaml';
|
|
109
109
|
const cfg = d.config;
|
|
110
110
|
const secretName = 'verdaccio-secrets';
|
|
111
|
-
const pluginMountPath = '/verdaccio/plugins';
|
|
112
111
|
const configYaml = buildVerdaccioConfig(d);
|
|
113
112
|
const configChecksum = createHash('sha256').update(configYaml).digest('hex').slice(0, 16);
|
|
114
113
|
const deployment = {
|
|
@@ -119,7 +118,7 @@ export function generateVerdaccioManifest(input) {
|
|
|
119
118
|
namespace: ns,
|
|
120
119
|
labels: { app: d.id, 'app.kubernetes.io/part-of': 'vibes' },
|
|
121
120
|
annotations: {
|
|
122
|
-
'vibes.dev/verdaccio-
|
|
121
|
+
'vibes.dev/verdaccio-auth': 'htpasswd',
|
|
123
122
|
'secrets.hashicorp.com/rollout-restart': 'true'
|
|
124
123
|
}
|
|
125
124
|
},
|
|
@@ -133,28 +132,6 @@ export function generateVerdaccioManifest(input) {
|
|
|
133
132
|
annotations: { 'vibes.dev/config-checksum': configChecksum }
|
|
134
133
|
},
|
|
135
134
|
spec: {
|
|
136
|
-
initContainers: [{
|
|
137
|
-
name: 'setup-plugin',
|
|
138
|
-
image: 'node:22-alpine',
|
|
139
|
-
command: ['sh', '-c', [
|
|
140
|
-
'apk add --no-cache git',
|
|
141
|
-
`mkdir -p ${pluginMountPath}/better-auth-jwt`,
|
|
142
|
-
'cd /tmp',
|
|
143
|
-
`git clone --depth 1 https://github.com/vibesdotdev/monorepo.git || git clone https://github.com/vibesdotdev/monorepo.git`,
|
|
144
|
-
'cd monorepo/packages/verdaccio-better-auth-jwt',
|
|
145
|
-
'npm install',
|
|
146
|
-
'npm run build || true',
|
|
147
|
-
`cp -r ./dist/* ${pluginMountPath}/better-auth-jwt/ || true`,
|
|
148
|
-
'echo "Plugin installed"'
|
|
149
|
-
].join(' && ')],
|
|
150
|
-
volumeMounts: [
|
|
151
|
-
{ name: 'plugins', mountPath: pluginMountPath }
|
|
152
|
-
],
|
|
153
|
-
resources: {
|
|
154
|
-
requests: { cpu: '100m', memory: '64Mi' },
|
|
155
|
-
limits: { cpu: '500m', memory: '256Mi' }
|
|
156
|
-
}
|
|
157
|
-
}],
|
|
158
135
|
containers: [{
|
|
159
136
|
name: d.id,
|
|
160
137
|
image: cfg.dockerImage,
|
|
@@ -167,7 +144,7 @@ export function generateVerdaccioManifest(input) {
|
|
|
167
144
|
volumeMounts: [
|
|
168
145
|
{ name: 'storage', mountPath: '/verdaccio/storage' },
|
|
169
146
|
{ name: 'config', mountPath: '/verdaccio/conf', readOnly: true },
|
|
170
|
-
{ name: 'plugins', mountPath:
|
|
147
|
+
{ name: 'plugins', mountPath: '/verdaccio/plugins' }
|
|
171
148
|
],
|
|
172
149
|
livenessProbe: {
|
|
173
150
|
httpGet: { path: '/', port },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verdaccio.impl.js","sourceRoot":"","sources":["../../src/implementations/verdaccio.impl.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"verdaccio.impl.js","sourceRoot":"","sources":["../../src/implementations/verdaccio.impl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibesdotdev/infra-doks",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -92,12 +92,12 @@
|
|
|
92
92
|
},
|
|
93
93
|
"dependencies": {
|
|
94
94
|
"@kubernetes/client-node": "^1.4.0",
|
|
95
|
-
"@vibesdotdev/infra-core": "0.0.
|
|
96
|
-
"@vibesdotdev/logging": "0.0.
|
|
97
|
-
"@vibesdotdev/registry-theme": "0.0.
|
|
98
|
-
"@vibesdotdev/runtime": "0.0.
|
|
99
|
-
"@vibesdotdev/runtime-client": "0.0.
|
|
100
|
-
"@vibesdotdev/secrets": "0.0.
|
|
95
|
+
"@vibesdotdev/infra-core": "0.0.2",
|
|
96
|
+
"@vibesdotdev/logging": "0.0.2",
|
|
97
|
+
"@vibesdotdev/registry-theme": "0.0.2",
|
|
98
|
+
"@vibesdotdev/runtime": "0.0.2",
|
|
99
|
+
"@vibesdotdev/runtime-client": "0.0.2",
|
|
100
|
+
"@vibesdotdev/secrets": "0.0.2",
|
|
101
101
|
"zod": "^4.3.6"
|
|
102
102
|
},
|
|
103
103
|
"scripts": {
|
|
@@ -109,18 +109,12 @@
|
|
|
109
109
|
"registry": "https://registry.npmjs.org",
|
|
110
110
|
"access": "public"
|
|
111
111
|
},
|
|
112
|
-
"repository": {
|
|
113
|
-
"type": "git",
|
|
114
|
-
"url": "git+https://github.com/vibesdotdev/monorepo.git",
|
|
115
|
-
"directory": "packages/infra-doks"
|
|
116
|
-
},
|
|
117
112
|
"license": "MIT",
|
|
118
113
|
"files": [
|
|
119
114
|
"dist",
|
|
120
115
|
"src",
|
|
121
116
|
"bin",
|
|
122
117
|
"README.md",
|
|
123
|
-
"SPEC.md",
|
|
124
118
|
"LICENSE",
|
|
125
119
|
"!src/**/__tests__/**",
|
|
126
120
|
"!src/**/__stubs__/**",
|
|
@@ -141,5 +135,10 @@
|
|
|
141
135
|
],
|
|
142
136
|
"vibes": {
|
|
143
137
|
"visibility": "public-framework"
|
|
138
|
+
},
|
|
139
|
+
"description": "DigitalOcean Kubernetes infrastructure adapter for Vibes deployment manifests.",
|
|
140
|
+
"homepage": "https://docs.vibes.dev/packages/infra-doks",
|
|
141
|
+
"bugs": {
|
|
142
|
+
"url": "https://docs.vibes.dev/packages/infra-doks#support"
|
|
144
143
|
}
|
|
145
144
|
}
|
package/src/doks.plugin.ts
CHANGED
|
@@ -276,8 +276,8 @@ export default createRuntimePlugin({
|
|
|
276
276
|
return createGiteaImpl({
|
|
277
277
|
kind: 'infra/git-hosting',
|
|
278
278
|
id: 'gitea',
|
|
279
|
-
url: 'https://git.
|
|
280
|
-
hostname: 'git.
|
|
279
|
+
url: 'https://git.example.com',
|
|
280
|
+
hostname: 'git.example.com',
|
|
281
281
|
type: 'gitea',
|
|
282
282
|
storagePath: '/data',
|
|
283
283
|
authMethod: 'token',
|
|
@@ -287,7 +287,7 @@ export default createRuntimePlugin({
|
|
|
287
287
|
dropletSize: 's-2vcpu-2gb',
|
|
288
288
|
dockerImage: 'gitea/gitea:1.21',
|
|
289
289
|
volumeSizeGb: 50,
|
|
290
|
-
domain: 'git.
|
|
290
|
+
domain: 'git.example.com',
|
|
291
291
|
sshPort: 22,
|
|
292
292
|
httpPort: 3000
|
|
293
293
|
}
|
|
@@ -318,7 +318,7 @@ export default createRuntimePlugin({
|
|
|
318
318
|
return createVerdaccioImpl({
|
|
319
319
|
kind: 'infra/package-registry',
|
|
320
320
|
id: 'verdaccio',
|
|
321
|
-
url: 'https://packages.
|
|
321
|
+
url: 'https://packages.example.com',
|
|
322
322
|
registryType: 'npm',
|
|
323
323
|
scope: '@vibesdotdev',
|
|
324
324
|
upstreamUrl: 'https://registry.npmjs.org',
|
|
@@ -328,7 +328,7 @@ export default createRuntimePlugin({
|
|
|
328
328
|
adapter: 'verdaccio-doks',
|
|
329
329
|
dockerImage: 'verdaccio/verdaccio:5',
|
|
330
330
|
storageSize: '10Gi',
|
|
331
|
-
domain: 'packages.
|
|
331
|
+
domain: 'packages.example.com',
|
|
332
332
|
upstreamNpmUrl: 'https://registry.npmjs.org',
|
|
333
333
|
authEnabled: true
|
|
334
334
|
}
|
|
@@ -142,8 +142,6 @@ export function generateVerdaccioManifest(input: VerdaccioDoksDescriptorInput):
|
|
|
142
142
|
const configKey = 'config.yaml';
|
|
143
143
|
const cfg = d.config!;
|
|
144
144
|
const secretName = 'verdaccio-secrets';
|
|
145
|
-
const pluginMountPath = '/verdaccio/plugins';
|
|
146
|
-
|
|
147
145
|
const configYaml = buildVerdaccioConfig(d);
|
|
148
146
|
const configChecksum = createHash('sha256').update(configYaml).digest('hex').slice(0, 16);
|
|
149
147
|
|
|
@@ -155,7 +153,7 @@ export function generateVerdaccioManifest(input: VerdaccioDoksDescriptorInput):
|
|
|
155
153
|
namespace: ns,
|
|
156
154
|
labels: { app: d.id, 'app.kubernetes.io/part-of': 'vibes' },
|
|
157
155
|
annotations: {
|
|
158
|
-
'vibes.dev/verdaccio-
|
|
156
|
+
'vibes.dev/verdaccio-auth': 'htpasswd',
|
|
159
157
|
'secrets.hashicorp.com/rollout-restart': 'true'
|
|
160
158
|
}
|
|
161
159
|
},
|
|
@@ -169,28 +167,6 @@ export function generateVerdaccioManifest(input: VerdaccioDoksDescriptorInput):
|
|
|
169
167
|
annotations: { 'vibes.dev/config-checksum': configChecksum }
|
|
170
168
|
},
|
|
171
169
|
spec: {
|
|
172
|
-
initContainers: [{
|
|
173
|
-
name: 'setup-plugin',
|
|
174
|
-
image: 'node:22-alpine',
|
|
175
|
-
command: ['sh', '-c', [
|
|
176
|
-
'apk add --no-cache git',
|
|
177
|
-
`mkdir -p ${pluginMountPath}/better-auth-jwt`,
|
|
178
|
-
'cd /tmp',
|
|
179
|
-
`git clone --depth 1 https://github.com/vibesdotdev/monorepo.git || git clone https://github.com/vibesdotdev/monorepo.git`,
|
|
180
|
-
'cd monorepo/packages/verdaccio-better-auth-jwt',
|
|
181
|
-
'npm install',
|
|
182
|
-
'npm run build || true',
|
|
183
|
-
`cp -r ./dist/* ${pluginMountPath}/better-auth-jwt/ || true`,
|
|
184
|
-
'echo "Plugin installed"'
|
|
185
|
-
].join(' && ')],
|
|
186
|
-
volumeMounts: [
|
|
187
|
-
{ name: 'plugins', mountPath: pluginMountPath }
|
|
188
|
-
],
|
|
189
|
-
resources: {
|
|
190
|
-
requests: { cpu: '100m', memory: '64Mi' },
|
|
191
|
-
limits: { cpu: '500m', memory: '256Mi' }
|
|
192
|
-
}
|
|
193
|
-
}],
|
|
194
170
|
containers: [{
|
|
195
171
|
name: d.id,
|
|
196
172
|
image: cfg.dockerImage,
|
|
@@ -203,7 +179,7 @@ export function generateVerdaccioManifest(input: VerdaccioDoksDescriptorInput):
|
|
|
203
179
|
volumeMounts: [
|
|
204
180
|
{ name: 'storage', mountPath: '/verdaccio/storage' },
|
|
205
181
|
{ name: 'config', mountPath: '/verdaccio/conf', readOnly: true },
|
|
206
|
-
{ name: 'plugins', mountPath:
|
|
182
|
+
{ name: 'plugins', mountPath: '/verdaccio/plugins' }
|
|
207
183
|
],
|
|
208
184
|
livenessProbe: {
|
|
209
185
|
httpGet: { path: '/', port },
|
package/SPEC.md
DELETED
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
# @vibesdotdev/infra-doks
|
|
2
|
-
|
|
3
|
-
DigitalOcean / DOKS adapter for runtime kinds defined elsewhere: `infra/*`
|
|
4
|
-
from [`infra-core`](../infra-core/SPEC.md) and `secrets/store` from
|
|
5
|
-
[`secrets`](../secrets/SPEC.md). Each kind defines a base descriptor
|
|
6
|
-
schema, an implementation interface, and a pass-through default impl in
|
|
7
|
-
its owning package; this package supplies the DigitalOcean / DOKS
|
|
8
|
-
**descriptor + impl** pair the runtime selects when scope resolves to a
|
|
9
|
-
DO/cluster target. The canonical adapter pattern lives in
|
|
10
|
-
[`infra-cloudflare`](../infra-cloudflare/SPEC.md) — same plugin shape,
|
|
11
|
-
same `createRuntimeImplementation` bridge, same per-impl descriptor
|
|
12
|
-
schemas alongside the generators. Every adapter pair owned here is REGISTERED with the runtime via
|
|
13
|
-
`runtime.registerLoader` in `onActivate` (`vault`, `doks-deployment`,
|
|
14
|
-
`doks-statefulset` for queue and database, `do-managed-postgres`,
|
|
15
|
-
`do-managed-redis`, `do-spaces`, `gitea-doks`, `verdaccio-doks`, plus the
|
|
16
|
-
`digitalocean-droplet` sandbox). Whether each registration is reached by
|
|
17
|
-
an in-repo consumer is a separate question — see "Consumers" below.
|
|
18
|
-
Today the registered set splits roughly in half: `vault`,
|
|
19
|
-
`digitalocean-droplet`, `gitea-doks`, and `verdaccio-doks` have live
|
|
20
|
-
consumers; the rest are registered-only (and `infra/generate.ts` even
|
|
21
|
-
inlines a parallel shape for `doks-deployment` and `do-spaces` that
|
|
22
|
-
drifts from this package's generator).
|
|
23
|
-
|
|
24
|
-
## Owns
|
|
25
|
-
|
|
26
|
-
- **Plugin descriptor:** `doksPlugin` (id `infra-doks`, depends on `infra`).
|
|
27
|
-
In `onActivate`, lazy-registers each pair via `runtime.registerLoader`.
|
|
28
|
-
Implementations are `await import()`-ed inside the loader, never at
|
|
29
|
-
module load.
|
|
30
|
-
- **`secrets/store` `vault` descriptor + impl** (`./secrets`). Descriptor in `vault.descriptor.ts`
|
|
31
|
-
(`backend: 'vault'`, `hardware: ['cloud']`,
|
|
32
|
-
`tiers: ['staging', 'production']`, default address
|
|
33
|
-
`http://vault.observability.svc.cluster.local:8200`, K8s auth method).
|
|
34
|
-
Impl in `vault.impl.ts` is a `SecretsStoreImplementation` walking the
|
|
35
|
-
fixed Vault KV v2 path groups `app`/`oauth`/`artifacts`/
|
|
36
|
-
`infrastructure`, defaulting new keys to `app`. HTTP client in
|
|
37
|
-
`vault.client.ts` (K8s service-account token exchange against
|
|
38
|
-
`/v1/auth/kubernetes/login`). Priority 30. `createVaultStore` wraps
|
|
39
|
-
the store in `createRuntimeImplementation`.
|
|
40
|
-
- **`infra/worker` `doks-deployment` descriptor + impl** (`./implementations/deployment`).
|
|
41
|
-
Adapter descriptor schema `DoksDeploymentDescriptorSchema` co-located with
|
|
42
|
-
`generateK8sDeployment` generator. Implementation produces a K8s
|
|
43
|
-
Deployment manifest. Priority 20.
|
|
44
|
-
- **`infra/queue` `doks-statefulset` descriptor + impl** (`./implementations/statefulset`).
|
|
45
|
-
Adapter descriptor schema `DoksQueueDescriptorSchema` co-located with
|
|
46
|
-
`generateK8sStatefulSet` generator for Kafka/Redpanda. Implementation
|
|
47
|
-
produces a K8s StatefulSet manifest. Priority 20.
|
|
48
|
-
- **`infra/database` `doks-statefulset` descriptor + impl** (`./implementations/statefulset`).
|
|
49
|
-
Adapter descriptor schema `DoksDatabaseDescriptorSchema` co-located with
|
|
50
|
-
`generateK8sStatefulSet` generator for self-hosted Postgres. Implementation
|
|
51
|
-
produces a K8s StatefulSet manifest. Priority 20.
|
|
52
|
-
- **`infra/database` `do-managed-postgres` descriptor + impl** (`./implementations/managed-db`).
|
|
53
|
-
Adapter descriptor schema `DOManagedPostgresDescriptorSchema` co-located with
|
|
54
|
-
`generateDOManagedDB` generator. Implementation produces a DO Managed Database
|
|
55
|
-
API spec. Priority 30 (higher than StatefulSet so managed is preferred when adapter
|
|
56
|
-
matches).
|
|
57
|
-
- **`infra/cache` `do-managed-redis` descriptor + impl** (`./implementations/managed-redis`).
|
|
58
|
-
Adapter descriptor schema `DOManagedRedisDescriptorSchema` co-located with
|
|
59
|
-
`generateDOManagedRedis` generator. Implementation produces a DO Managed Redis
|
|
60
|
-
API spec. Priority 20.
|
|
61
|
-
- **`infra/object-storage` `do-spaces` descriptor + impl** (`./implementations/spaces`).
|
|
62
|
-
Adapter descriptor schema `DOSpacesDescriptorSchema` co-located with
|
|
63
|
-
`generateDOSpaces` generator. Implementation produces a DO Spaces API spec.
|
|
64
|
-
Priority 20.
|
|
65
|
-
- **`infra/git-hosting` `gitea-doks` descriptor + impl** (`./implementations/gitea.impl`).
|
|
66
|
-
Adapter descriptor schema `GiteaDoksDescriptorSchema` co-located with
|
|
67
|
-
`generateGiteaManifest` generator. Implementation produces K8s
|
|
68
|
-
Deployment + Service + PersistentVolumeClaim + Ingress manifests for Gitea.
|
|
69
|
-
Priority 20.
|
|
70
|
-
- **`infra/package-registry` `verdaccio-doks` descriptor + impl** (`./implementations/verdaccio.impl`).
|
|
71
|
-
Adapter descriptor schema `VerdaccioDoksDescriptorSchema` co-located with
|
|
72
|
-
`generateVerdaccioManifest` generator. Implementation produces K8s
|
|
73
|
-
Deployment + Service + PersistentVolumeClaim + ConfigMap + Ingress manifests
|
|
74
|
-
for Verdaccio. Priority 20.
|
|
75
|
-
- **`infra/sandbox` `digitalocean-droplet` descriptor + impl**
|
|
76
|
-
(`./implementations/droplet`). Implements the `digitalocean-droplet`
|
|
77
|
-
variant of `infra/sandbox` whose schema already lives in
|
|
78
|
-
[`infra-core`](../infra-core/SPEC.md). Wires the existing
|
|
79
|
-
`DigitalOceanProvider` (`./cloud/digitalocean.ts`) into the runtime
|
|
80
|
-
kind resolution path: creates the droplet via DO `/v2/droplets`,
|
|
81
|
-
waits for `status: 'active'`, returns
|
|
82
|
-
`{ instanceId, publicIp, privateIp, region, createdAt }`. Optional
|
|
83
|
-
`cloudInitScript` is forwarded as `user_data`. Priority 20.
|
|
84
|
-
- **Manifest output types** (`./types`): K8s API subset (`K8sDeployment`,
|
|
85
|
-
`K8sStatefulSet`, `K8sService`, `K8sConfigMap`, `K8sSecret`,
|
|
86
|
-
`K8sContainer`, `K8sPodSpec`, `K8sPodTemplateSpec`, `K8sProbe`,
|
|
87
|
-
`K8sResourceRequirements`, `K8sLabelSelector`, `K8sVolumeClaimTemplate`)
|
|
88
|
-
and DO managed-service spec shapes (`DOManagedDBSpec`,
|
|
89
|
-
`DOManagedRedisSpec`, `DOSpacesSpec`).
|
|
90
|
-
- **Manifest generator functions** (`./implementations`): pure functions
|
|
91
|
-
`generateK8sDeployment`, `generateK8sStatefulSet`,
|
|
92
|
-
`generateDOManagedDB`, `generateDOManagedRedis`, `generateDOSpaces`,
|
|
93
|
-
`generateGiteaManifest`, `generateVerdaccioManifest`.
|
|
94
|
-
Each takes an adapter-specific descriptor and returns a manifest object,
|
|
95
|
-
namespace `vibes`, name `vibes-{descriptor.id}`.
|
|
96
|
-
- **`runtime/client` `digitalocean-app-deploy` descriptor + impl**
|
|
97
|
-
(`./client`). `DigitalOceanAppDeployClient extends BaseRuntimeClient`
|
|
98
|
-
exposes `deployApp(options): Promise<DeployAppResult>` — translates an
|
|
99
|
-
`AppDeployment` to a DO App spec and POSTs `/apps` (create) or PUTs
|
|
100
|
-
`/apps/{id}` (update) via the v2 REST API. Consumed by
|
|
101
|
-
[`infra-deploy`](../infra-deploy/SPEC.md)'s CLI run handler through the
|
|
102
|
-
published `getDigitalOceanAppDeployClient()` helper. Reads
|
|
103
|
-
`DIGITALOCEAN_API_TOKEN` from the operator's env (secrets-manager
|
|
104
|
-
brokerage tracked in `infra-deploy/SPEC.md` migration debt).
|
|
105
|
-
|
|
106
|
-
## Does not own
|
|
107
|
-
|
|
108
|
-
- Infra runtime kinds and their base descriptor schemas →
|
|
109
|
-
[`infra-core`](../infra-core/SPEC.md).
|
|
110
|
-
- `secrets/store` kind, `SecretsStoreImplementation` interface, default
|
|
111
|
-
in-process impl, and env-requirement resolution →
|
|
112
|
-
[`secrets`](../secrets/SPEC.md).
|
|
113
|
-
- Cloudflare descriptor + impl pairs (Workers / Queues / R2 / KV /
|
|
114
|
-
cloudflare-api `secrets/store`) →
|
|
115
|
-
[`infra-cloudflare`](../infra-cloudflare/SPEC.md).
|
|
116
|
-
- `kubectl apply`, deployment orchestration, env materialization, and the
|
|
117
|
-
`infra/` workspace tree → [`infra-deploy`](../infra-deploy/SPEC.md).
|
|
118
|
-
- DigitalOcean API clients that actually create Managed DB / Redis /
|
|
119
|
-
Spaces resources. Generators here produce request-shaped specs only;
|
|
120
|
-
the only DO API client surface in this package is the
|
|
121
|
-
`DigitalOceanAppDeployClient` (App Platform deploys) and the existing
|
|
122
|
-
`DigitalOceanProvider` (droplets, volumes, VPCs) — both behind the
|
|
123
|
-
runtime kind resolution path, not via direct import.
|
|
124
|
-
|
|
125
|
-
## Hard rules
|
|
126
|
-
|
|
127
|
-
- The plugin registers every implementation through
|
|
128
|
-
`runtime.registerLoader` in `onActivate`. Do not import
|
|
129
|
-
implementations at module load — Vault auth touches Node FS and the
|
|
130
|
-
network and must not run on `import`.
|
|
131
|
-
- Adapter packages provide descriptor + impl pairs for kinds defined
|
|
132
|
-
elsewhere. Defining a new kind here is a layering violation — add it
|
|
133
|
-
to its owning package (`infra-core`, `secrets`, …) first.
|
|
134
|
-
- The descriptor + impl unit follows infra-cloudflare's shape: each
|
|
135
|
-
`*.impl.ts` co-locates the adapter descriptor schema (extending the
|
|
136
|
-
base kind with adapter-specific fields), the generator, and the output
|
|
137
|
-
type; the plugin file holds the `create*Impl(input)` factory that
|
|
138
|
-
parses the descriptor and wraps the generator in
|
|
139
|
-
`createRuntimeImplementation`; `onActivate` calls `registerLoader` for
|
|
140
|
-
each pair. Do not split these layers across additional files.
|
|
141
|
-
- Each kind's implementation interface is defined in its owning package.
|
|
142
|
-
`secrets/store` requires the full `SecretsStoreImplementation` CRUD
|
|
143
|
-
interface; `infra/*` kinds expect `{ generateConfig: () => …Manifest }`
|
|
144
|
-
per the cloudflare precedent. Adapters fulfill the kind's interface
|
|
145
|
-
exactly; do not invent a parallel interface.
|
|
146
|
-
- Vault auth precedence: descriptor `token`, then `VAULT_TOKEN` env,
|
|
147
|
-
then exchange the K8s service-account JWT at
|
|
148
|
-
`/var/run/secrets/kubernetes.io/serviceaccount/token` for a Vault
|
|
149
|
-
token. Failing all three throws — never silently fall through.
|
|
150
|
-
- The `digitalocean-droplet` impl is the only path through which
|
|
151
|
-
`DigitalOceanProvider` (`./cloud/digitalocean.ts`) is reachable from
|
|
152
|
-
the runtime. Direct imports of `./cloud/digitalocean.ts` from
|
|
153
|
-
feature packages are layering violations; that class moves from
|
|
154
|
-
orphan to runtime-bound on this landing.
|
|
155
|
-
- Droplet creation is idempotent against the descriptor `id`: a second
|
|
156
|
-
call with the same id returns the existing droplet rather than
|
|
157
|
-
creating a duplicate. Tag droplets with `vibes:resourceId=<id>` to
|
|
158
|
-
make the lookup cheap.
|
|
159
|
-
- DO API token resolution: descriptor override →
|
|
160
|
-
`DIGITALOCEAN_API_TOKEN` env → `packages/secrets`
|
|
161
|
-
`cloud-credentials.digitalocean.token` once brokerage lands. Same
|
|
162
|
-
precedence the rest of this package uses.
|
|
163
|
-
- The Vault descriptor is `hardware: ['cloud']` only. It must not
|
|
164
|
-
register on consumer hardware; the in-cluster Vault address is
|
|
165
|
-
unreachable elsewhere.
|
|
166
|
-
- Manifest generators are pure: descriptor in, plain object out, no
|
|
167
|
-
I/O, no side effects. Probes, resource requests/limits, namespace
|
|
168
|
-
`vibes`, and the `vibes-{descriptor.id}` naming convention are part
|
|
169
|
-
of the contract — change them only with a deploy-side coordinated
|
|
170
|
-
update.
|
|
171
|
-
- Vault KV path groups (`app`, `oauth`, `artifacts`, `infrastructure`)
|
|
172
|
-
match the deployment Helm chart's secret groups. Adding a new group
|
|
173
|
-
requires updating this list and the chart in lockstep.
|
|
174
|
-
- Manifest generators are config transforms and stay pure; the only
|
|
175
|
-
runtime-bound clients that perform I/O are the `runtime/client`
|
|
176
|
-
`digitalocean-app-deploy` (App Platform deploys) and the existing
|
|
177
|
-
`digitalocean-droplet` `infra/sandbox` impl (droplets). Adding another
|
|
178
|
-
cloud-API surface means adding a new `runtime/client` or kind impl —
|
|
179
|
-
never a top-level export bypassing the runtime.
|
|
180
|
-
- The `digitalocean-app-deploy` client reads `DIGITALOCEAN_API_TOKEN`
|
|
181
|
-
from process env today (matches the `digitalocean-droplet` impl
|
|
182
|
-
precedence). End-state: resolve `cloud-credentials.digitalocean.token`
|
|
183
|
-
via `packages/secrets` per actor scope.
|
|
184
|
-
|
|
185
|
-
## Consumers
|
|
186
|
-
|
|
187
|
-
Status of each impl pair's consumption path:
|
|
188
|
-
|
|
189
|
-
- **`secrets/store` → `vault`**: consumed by `infra/vault-setup.ts` via Vault HTTP
|
|
190
|
-
client; production-wired.
|
|
191
|
-
- **`infra/sandbox` → `digitalocean-droplet`**: consumed by
|
|
192
|
-
`packages/runner-adapter-digitalocean` (GPU on-demand inference). Required at
|
|
193
|
-
runtime — removing this loader breaks GPU runner activation.
|
|
194
|
-
- **`runtime/client` → `digitalocean-app-deploy`**: consumed by
|
|
195
|
-
[`infra-deploy`](../infra-deploy/SPEC.md) via
|
|
196
|
-
`getDigitalOceanAppDeployClient()` in
|
|
197
|
-
`packages/infra-deploy/src/cli/run/infra-deploy.run.cli-command.impl.ts`.
|
|
198
|
-
Required for `vibes infra deploy run` against DO App Platform apps.
|
|
199
|
-
- **`infra/git-hosting` → `gitea-doks`** and
|
|
200
|
-
**`infra/package-registry` → `verdaccio-doks`**: consumed by `infra/generate.ts`
|
|
201
|
-
via direct `generateGiteaManifest` / `generateVerdaccioManifest` imports
|
|
202
|
-
(not via the runtime resolver). Active in DOKS apply phase.
|
|
203
|
-
- **`infra/worker` → `doks-deployment`**, **`infra/queue` → `doks-statefulset`**,
|
|
204
|
-
**`infra/database` → `doks-statefulset` / `do-managed-postgres`**,
|
|
205
|
-
**`infra/cache` → `do-managed-redis`**, **`infra/object-storage` → `do-spaces`**:
|
|
206
|
-
registered with the runtime but no in-repo consumer resolves them yet.
|
|
207
|
-
`infra/generate.ts` inlines its own K8s Deployment YAML for the
|
|
208
|
-
`doks-deployment` workers (`ai-workers`, `crawl-workers`, `workbench-workers`)
|
|
209
|
-
with a DIFFERENT shape than `generateK8sDeployment` (different image prefix
|
|
210
|
-
`ghcr.io/vibes-dev` vs. `vibes/`, inline `env[]` vs. `envFrom: configMapRef`,
|
|
211
|
-
includes `HorizontalPodAutoscaler`). The infra-doks generator is the
|
|
212
|
-
canonical target shape; `infra/generate.ts` is the current production shape.
|
|
213
|
-
Consolidation needs a deploy-side coordinated test pass (apply against a
|
|
214
|
-
DOKS cluster, diff manifests) — tracked as migration debt below.
|
|
215
|
-
|
|
216
|
-
## Migration debt
|
|
217
|
-
|
|
218
|
-
- [ ] **`infra/generate.ts` doks-deployment / do-spaces inlining drift.**
|
|
219
|
-
`infra/generate.ts` inlines K8s Deployment + HPA YAML and DO Spaces JSON
|
|
220
|
-
rather than routing through `generateK8sDeployment` / `generateDOSpaces`.
|
|
221
|
-
Reconciling requires aligning the infra-doks generators with the inline
|
|
222
|
-
shapes (add HPA support, default image prefix `ghcr.io/vibes-dev`, allow
|
|
223
|
-
inline env + secret env) and running an apply-dry-run diff against the
|
|
224
|
-
current `infra/generated/k8s-*-workers.yaml` files before flipping over.
|
|
225
|
-
|
|
226
|
-
- [ ] **`infra/git-hosting` and `infra/package-registry` impl pairs are new.**
|
|
227
|
-
`gitea.impl.ts` and `verdaccio.impl.ts` register `gitea-doks` and `verdaccio-doks`
|
|
228
|
-
loaders for the new kinds. Both implementations follow the existing impl pattern.
|
|
229
|
-
Full validation: `createRuntimeAsset` calls must validate `config` against the
|
|
230
|
-
kind's registered `descriptorSchema` once the runtime `config` field migration
|
|
231
|
-
in `runtime` is complete.
|
|
232
|
-
|
|
233
|
-
- [x] **Five DOKS/DO descriptor + impl pairs are unbuilt.** The generators
|
|
234
|
-
exist, but each impl file was missing its adapter descriptor schema,
|
|
235
|
-
the plugin was missing its `create*Impl(input)` factory, and
|
|
236
|
-
`onActivate` was missing the matching `registerLoader` call.
|
|
237
|
-
**Resolution:** Mirrored `infra-cloudflare` exactly:
|
|
238
|
-
- `infra/worker` ← `generateK8sDeployment` via `doks-deployment` loader (priority 20)
|
|
239
|
-
- `infra/queue` ← `generateK8sStatefulSet` via `doks-statefulset` loader (priority 20)
|
|
240
|
-
- `infra/database` ← `generateK8sStatefulSet` via `doks-statefulset` loader (priority 20)
|
|
241
|
-
and `generateDOManagedDB` via `do-managed-postgres` loader (priority 30)
|
|
242
|
-
- `infra/cache` ← `generateDOManagedRedis` via `do-managed-redis` loader (priority 20)
|
|
243
|
-
- `infra/object-storage` ← `generateDOSpaces` via `do-spaces` loader (priority 20)
|
|
244
|
-
Each implementation follows the `{ generateConfig: () => Manifest }` shape
|
|
245
|
-
per the cloudflare precedent.
|
|
246
|
-
- [x] **`package.json#exports` wildcard cleanup.**
|
|
247
|
-
**Resolution:** Replaced `"./implementations/*": "./src/implementations/*"` with
|
|
248
|
-
explicit per-impl subpaths:
|
|
249
|
-
- `./implementations/deployment`
|
|
250
|
-
- `./implementations/statefulset`
|
|
251
|
-
- `./implementations/managed-db`
|
|
252
|
-
- `./implementations/managed-redis`
|
|
253
|
-
- `./implementations/spaces`
|
|
254
|
-
Grep found no in-repo consumer of the wildcard.
|
|
255
|
-
- [x] **`infra-core`'s `deploymentProviderSchema` enum coordination.**
|
|
256
|
-
**Resolution:** This is already cross-recorded in [`infra-core`](../infra-core/SPEC.md)
|
|
257
|
-
migration debt. The `infra-doks` package provides the implementations; the enum
|
|
258
|
-
trim in `infra-core` is a separate action item tracked there.
|
|
259
|
-
|
|
260
|
-
## Public entrypoints
|
|
261
|
-
|
|
262
|
-
`.`, `./plugin`, `./implementations/deployment`, `./implementations/statefulset`,
|
|
263
|
-
`./implementations/managed-db`, `./implementations/managed-redis`,
|
|
264
|
-
`./implementations/spaces`, `./implementations/gitea`, `./implementations/verdaccio`,
|
|
265
|
-
`./secrets`, `./cloud`, `./kubernetes`, `./types`, `./client`.
|
|
266
|
-
|
|
267
|
-
Wildcard / migration-era subpaths: None — the explicit per-impl subpaths above
|
|
268
|
-
replace the former `./implementations/*` wildcard.
|
|
269
|
-
|
|
270
|
-
## Verification
|
|
271
|
-
|
|
272
|
-
`bun test` from `packages/infra-doks`. Covers plugin shape (`id`,
|
|
273
|
-
`dependencies`, `name`) and deterministic-output tests for each of
|
|
274
|
-
`deployment.impl`, `statefulset.impl`, `managed-db.impl`,
|
|
275
|
-
`managed-redis.impl`, `spaces.impl`. No live Vault, Kubernetes API, or
|
|
276
|
-
DigitalOcean API contact is exercised; those are deploy-time gates.
|
|
277
|
-
Type gate is `bun --bun tsc -p tsconfig.json --noEmit`.
|
|
278
|
-
|
|
279
|
-
## Links
|
|
280
|
-
|
|
281
|
-
- [infra-core/SPEC.md](../infra-core/SPEC.md)
|
|
282
|
-
- [infra-cloudflare/SPEC.md](../infra-cloudflare/SPEC.md)
|
|
283
|
-
- [secrets/SPEC.md](../secrets/SPEC.md)
|
|
284
|
-
- [runtime/SPEC.md](../runtime/SPEC.md)
|
|
285
|
-
- [infra-deploy/SPEC.md](../infra-deploy/SPEC.md)
|