@kadi.build/deploy-ability 0.0.2 → 0.0.4

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 (103) hide show
  1. package/dist/targets/akash/bids.d.ts +183 -0
  2. package/dist/targets/akash/bids.d.ts.map +1 -0
  3. package/dist/targets/akash/bids.js +247 -0
  4. package/dist/targets/akash/bids.js.map +1 -0
  5. package/dist/targets/akash/certificate-manager.d.ts +89 -167
  6. package/dist/targets/akash/certificate-manager.d.ts.map +1 -1
  7. package/dist/targets/akash/certificate-manager.js +193 -301
  8. package/dist/targets/akash/certificate-manager.js.map +1 -1
  9. package/dist/targets/akash/client.d.ts +644 -0
  10. package/dist/targets/akash/client.d.ts.map +1 -0
  11. package/dist/targets/akash/client.js +972 -0
  12. package/dist/targets/akash/client.js.map +1 -0
  13. package/dist/targets/akash/constants.d.ts +12 -149
  14. package/dist/targets/akash/constants.d.ts.map +1 -1
  15. package/dist/targets/akash/constants.js +14 -136
  16. package/dist/targets/akash/constants.js.map +1 -1
  17. package/dist/targets/akash/deployer.d.ts +3 -82
  18. package/dist/targets/akash/deployer.d.ts.map +1 -1
  19. package/dist/targets/akash/deployer.js +122 -160
  20. package/dist/targets/akash/deployer.js.map +1 -1
  21. package/dist/targets/akash/environment.d.ts +16 -214
  22. package/dist/targets/akash/environment.d.ts.map +1 -1
  23. package/dist/targets/akash/environment.js +20 -210
  24. package/dist/targets/akash/environment.js.map +1 -1
  25. package/dist/targets/akash/index.d.ts +95 -189
  26. package/dist/targets/akash/index.d.ts.map +1 -1
  27. package/dist/targets/akash/index.js +69 -197
  28. package/dist/targets/akash/index.js.map +1 -1
  29. package/dist/targets/akash/lease-monitor.d.ts +3 -21
  30. package/dist/targets/akash/lease-monitor.d.ts.map +1 -1
  31. package/dist/targets/akash/lease-monitor.js +39 -56
  32. package/dist/targets/akash/lease-monitor.js.map +1 -1
  33. package/dist/targets/akash/logs.d.ts +103 -4
  34. package/dist/targets/akash/logs.d.ts.map +1 -1
  35. package/dist/targets/akash/logs.js +12 -3
  36. package/dist/targets/akash/logs.js.map +1 -1
  37. package/dist/targets/akash/pricing.d.ts +12 -191
  38. package/dist/targets/akash/pricing.d.ts.map +1 -1
  39. package/dist/targets/akash/pricing.js +12 -188
  40. package/dist/targets/akash/pricing.js.map +1 -1
  41. package/dist/targets/akash/provider-manager.d.ts +120 -0
  42. package/dist/targets/akash/provider-manager.d.ts.map +1 -0
  43. package/dist/targets/akash/provider-manager.js +574 -0
  44. package/dist/targets/akash/provider-manager.js.map +1 -0
  45. package/dist/targets/akash/sdl-generator.d.ts +2 -2
  46. package/dist/targets/akash/sdl-generator.d.ts.map +1 -1
  47. package/dist/targets/akash/sdl-generator.js +6 -39
  48. package/dist/targets/akash/sdl-generator.js.map +1 -1
  49. package/dist/targets/akash/types.d.ts +66 -243
  50. package/dist/targets/akash/types.d.ts.map +1 -1
  51. package/dist/targets/akash/types.js +4 -41
  52. package/dist/targets/akash/types.js.map +1 -1
  53. package/dist/targets/akash/wallet-manager.d.ts +35 -352
  54. package/dist/targets/akash/wallet-manager.d.ts.map +1 -1
  55. package/dist/targets/akash/wallet-manager.js +37 -439
  56. package/dist/targets/akash/wallet-manager.js.map +1 -1
  57. package/dist/targets/local/deployer.js +4 -4
  58. package/dist/targets/local/deployer.js.map +1 -1
  59. package/dist/types/index.d.ts +1 -1
  60. package/dist/types/index.d.ts.map +1 -1
  61. package/dist/types/index.js.map +1 -1
  62. package/dist/types/options.d.ts +45 -4
  63. package/dist/types/options.d.ts.map +1 -1
  64. package/dist/utils/registry/manager.js +6 -6
  65. package/dist/utils/registry/manager.js.map +1 -1
  66. package/dist/utils/registry/setup.js +4 -4
  67. package/dist/utils/registry/setup.js.map +1 -1
  68. package/package.json +8 -11
  69. package/dist/targets/akash/bid-selectors.d.ts +0 -251
  70. package/dist/targets/akash/bid-selectors.d.ts.map +0 -1
  71. package/dist/targets/akash/bid-selectors.js +0 -322
  72. package/dist/targets/akash/bid-selectors.js.map +0 -1
  73. package/dist/targets/akash/bid-types.d.ts +0 -297
  74. package/dist/targets/akash/bid-types.d.ts.map +0 -1
  75. package/dist/targets/akash/bid-types.js +0 -89
  76. package/dist/targets/akash/bid-types.js.map +0 -1
  77. package/dist/targets/akash/blockchain-client.d.ts +0 -577
  78. package/dist/targets/akash/blockchain-client.d.ts.map +0 -1
  79. package/dist/targets/akash/blockchain-client.js +0 -803
  80. package/dist/targets/akash/blockchain-client.js.map +0 -1
  81. package/dist/targets/akash/logs.types.d.ts +0 -102
  82. package/dist/targets/akash/logs.types.d.ts.map +0 -1
  83. package/dist/targets/akash/logs.types.js +0 -9
  84. package/dist/targets/akash/logs.types.js.map +0 -1
  85. package/dist/targets/akash/provider-client.d.ts +0 -114
  86. package/dist/targets/akash/provider-client.d.ts.map +0 -1
  87. package/dist/targets/akash/provider-client.js +0 -318
  88. package/dist/targets/akash/provider-client.js.map +0 -1
  89. package/dist/targets/akash/provider-metadata.d.ts +0 -228
  90. package/dist/targets/akash/provider-metadata.d.ts.map +0 -1
  91. package/dist/targets/akash/provider-metadata.js +0 -14
  92. package/dist/targets/akash/provider-metadata.js.map +0 -1
  93. package/dist/targets/akash/provider-service.d.ts +0 -133
  94. package/dist/targets/akash/provider-service.d.ts.map +0 -1
  95. package/dist/targets/akash/provider-service.js +0 -391
  96. package/dist/targets/akash/provider-service.js.map +0 -1
  97. package/dist/targets/akash/query-client.d.ts +0 -125
  98. package/dist/targets/akash/query-client.d.ts.map +0 -1
  99. package/dist/targets/akash/query-client.js +0 -332
  100. package/dist/targets/akash/query-client.js.map +0 -1
  101. package/docs/EXAMPLES.md +0 -293
  102. package/docs/PLACEMENT.md +0 -433
  103. package/docs/STORAGE.md +0 -318
package/docs/STORAGE.md DELETED
@@ -1,318 +0,0 @@
1
- ## Understanding Storage Configuration
2
-
3
- One of the most common questions when configuring deployments is: **"What's the difference between memory and storage?"**
4
-
5
- This section explains how to configure resources in your `agent.json` deployment profiles.
6
-
7
- ### Three Types of Resources
8
-
9
- When deploying containers, you work with three distinct resource types:
10
-
11
- | Resource | Medium | Speed | Volatility | Use Cases |
12
- |----------|--------|-------|------------|-----------|
13
- | **memory** | RAM | Nanoseconds | Lost on crash | Running processes, hot caches, application state |
14
- | **ephemeralStorage** | Disk | Milliseconds | Lost on restart | Container root FS, /tmp, temporary files, logs |
15
- | **persistentVolumes** | Disk | Milliseconds | Survives restarts | Database files, user uploads, ML models |
16
-
17
- ### Memory vs Storage
18
-
19
- **Memory (RAM):**
20
- - **What it is:** System memory for your application's runtime
21
- - **Speed:** Extremely fast (nanoseconds)
22
- - **Cleared:** Immediately when container stops or crashes
23
- - **Use for:** JavaScript heap, database query cache, in-memory data structures
24
- - **Example:** A Node.js process with `"memory": "1Gi"` can use up to 1GB RAM
25
-
26
- **Ephemeral Storage (Disk):**
27
- - **What it is:** The container's root filesystem (where your code runs)
28
- - **Speed:** Slower than RAM but faster than network (milliseconds)
29
- - **Cleared:** When container **restarts** (intentional or crash)
30
- - **Use for:** Container's root filesystem (`/`, `/tmp`, `/var/log`), temporary processing files
31
- - **Example:** A container needs space for binaries, system files, and temporary logs
32
-
33
- **Persistent Volumes (Disk):**
34
- - **What it is:** Named disk volumes mounted at specific paths
35
- - **Speed:** Similar to ephemeral storage (milliseconds)
36
- - **Cleared:** **Never** (persists for the lease duration, survives restarts)
37
- - **Use for:** Database files, user uploads, ML model weights, config that must survive restarts
38
- - **Example:** PostgreSQL data directory at `/var/lib/postgresql/data`
39
-
40
- ### Real-World Analogy
41
-
42
- Think of your deployment like an office workspace:
43
-
44
- - **Memory (RAM)** = Your **desk**
45
- - Everything you're actively working on right now
46
- - Instant access
47
- - Cleared when you leave (container stops)
48
-
49
- - **Ephemeral Storage** = **Whiteboard in your office**
50
- - Quick access for temporary notes
51
- - Walk a few steps to get there
52
- - Erased at end of day (container restarts)
53
-
54
- - **Persistent Storage** = **Filing cabinet**
55
- - Long-term storage for important documents
56
- - Slower to access (open drawer, find file)
57
- - Stays forever (survives restarts, persists for lease)
58
-
59
- ### Configuration Format
60
-
61
- Here's how to configure resources in your `agent.json`:
62
-
63
- ```json
64
- {
65
- "deploy": {
66
- "my-profile": {
67
- "target": "akash",
68
- "network": "mainnet",
69
- "services": {
70
- "gateway": {
71
- "image": "my-app:latest",
72
- "resources": {
73
- "cpu": 0.5,
74
- "memory": "1Gi",
75
- "ephemeralStorage": "512Mi",
76
- "persistentVolumes": [
77
- {
78
- "name": "data",
79
- "size": "10Gi",
80
- "mount": "/data",
81
- "class": "beta2"
82
- }
83
- ]
84
- }
85
- }
86
- }
87
- }
88
- }
89
- }
90
- ```
91
-
92
- **What this means:**
93
- - **cpu: 0.5** → Half a CPU core for processing
94
- - **memory: "1Gi"** → 1GB RAM for Node.js runtime, request handling, caches
95
- - **ephemeralStorage: "512Mi"** → 512MB disk for container root FS, /tmp, logs
96
- - **persistentVolumes** → 10GB disk mounted at `/data` that survives restarts
97
-
98
- ### Storage Classes (Persistent Volumes Only)
99
-
100
- When using persistent volumes, you can specify the storage class (performance tier):
101
-
102
- | Class | Type | Speed | Cost | Use Cases |
103
- |-------|------|-------|------|-----------|
104
- | **beta1** | HDD | Slow | Cheapest | Cold storage, backups, archives |
105
- | **beta2** | SSD | Balanced | Moderate | Most workloads, databases, general purpose |
106
- | **beta3** | NVMe | Fastest | Most expensive | High-IOPS databases, real-time processing |
107
- | **ram** | Memory | Ultra-fast | Very expensive | Ultra-low latency, temporary in-memory storage |
108
-
109
- **Recommendation:** Use `beta2` (SSD) for most workloads. Only upgrade to `beta3` if you need high IOPS.
110
-
111
- ### Example Configurations
112
-
113
- #### Simple API Server (No Persistent Storage)
114
-
115
- ```json
116
- {
117
- "resources": {
118
- "cpu": 0.5,
119
- "memory": "512Mi",
120
- "ephemeralStorage": "1Gi"
121
- }
122
- }
123
- ```
124
-
125
- **Why:** A stateless API server doesn't need persistent storage. Everything runs in memory or ephemeral disk.
126
-
127
- ---
128
-
129
- #### Database Server (Persistent Storage Required)
130
-
131
- ```json
132
- {
133
- "resources": {
134
- "cpu": 2,
135
- "memory": "4Gi",
136
- "ephemeralStorage": "2Gi",
137
- "persistentVolumes": [
138
- {
139
- "name": "pgdata",
140
- "size": "50Gi",
141
- "mount": "/var/lib/postgresql/data",
142
- "class": "beta2"
143
- }
144
- ]
145
- }
146
- }
147
- ```
148
-
149
- **Why:** PostgreSQL needs persistent storage for database files. If the container restarts without it, all data is lost!
150
-
151
- ---
152
-
153
- #### LLM Inference Server (Large Model Weights)
154
-
155
- ```json
156
- {
157
- "resources": {
158
- "cpu": 4,
159
- "memory": "16Gi",
160
- "ephemeralStorage": "10Gi",
161
- "persistentVolumes": [
162
- {
163
- "name": "models",
164
- "size": "100Gi",
165
- "mount": "/models",
166
- "class": "beta3"
167
- }
168
- ],
169
- "gpu": {
170
- "units": 1,
171
- "attributes": {
172
- "vendor": {
173
- "nvidia": [{ "model": "rtx4090" }]
174
- }
175
- }
176
- }
177
- }
178
- }
179
- ```
180
-
181
- **Why:**
182
- - **16Gi memory** → Large RAM for model inference
183
- - **10Gi ephemeral** → Space for temporary request processing
184
- - **100Gi persistent (NVMe)** → Fast storage for loading 70B+ model weights
185
- - **GPU** → Required for fast inference
186
-
187
- ---
188
-
189
- #### Multi-Volume Setup (Cache + Data)
190
-
191
- ```json
192
- {
193
- "resources": {
194
- "cpu": 1,
195
- "memory": "2Gi",
196
- "ephemeralStorage": "1Gi",
197
- "persistentVolumes": [
198
- {
199
- "name": "data",
200
- "size": "20Gi",
201
- "mount": "/data",
202
- "class": "beta2"
203
- },
204
- {
205
- "name": "cache",
206
- "size": "10Gi",
207
- "mount": "/cache",
208
- "class": "beta1"
209
- }
210
- ]
211
- }
212
- }
213
- ```
214
-
215
- **Why:** Separate volumes for critical data (SSD) and less critical cache (HDD for cost savings).
216
-
217
- ### Common Mistakes to Avoid
218
-
219
- **Confusing memory with storage**
220
- ```json
221
- // WRONG - Trying to use memory for file storage
222
- "memory": "50Gi" // Expensive! Use persistentVolumes instead
223
- ```
224
-
225
- **Correct approach**
226
- ```json
227
- "memory": "4Gi", // Only for runtime
228
- "persistentVolumes": [
229
- { "name": "data", "size": "50Gi", ... } // For file storage
230
- ]
231
- ```
232
-
233
- ---
234
-
235
- **Not using persistent volumes for databases**
236
- ```json
237
- // WRONG - Database data will be LOST on restart!
238
- "ephemeralStorage": "50Gi"
239
- ```
240
-
241
- **Correct approach**
242
- ```json
243
- "ephemeralStorage": "2Gi", // Just for root FS
244
- "persistentVolumes": [
245
- { "name": "db", "size": "50Gi", "mount": "/var/lib/postgresql/data", "class": "beta2" }
246
- ]
247
- ```
248
-
249
- ---
250
-
251
- **Forgetting ephemeralStorage**
252
- ```json
253
- // WRONG - Missing ephemeralStorage (will use default 1Gi)
254
- "resources": {
255
- "cpu": 1,
256
- "memory": "2Gi",
257
- "persistentVolumes": [...]
258
- }
259
- ```
260
-
261
- **Correct approach**
262
- ```json
263
- "resources": {
264
- "cpu": 1,
265
- "memory": "2Gi",
266
- "ephemeralStorage": "2Gi", // Explicitly set
267
- "persistentVolumes": [...]
268
- }
269
- ```
270
-
271
- ### Quick Decision Guide
272
-
273
- **Use this flowchart to decide what storage you need:**
274
-
275
- ```
276
- Need to store data?
277
- ├─ No → Just set memory + ephemeralStorage
278
- ├─ Yes → Does it need to survive restarts?
279
- ├─ No → Use ephemeralStorage (temporary files, caches)
280
- └─ Yes → Use persistentVolumes
281
- └─ How fast does it need to be?
282
- ├─ Normal → beta2 (SSD)
283
- ├─ Very fast → beta3 (NVMe)
284
- └─ Cost-sensitive → beta1 (HDD)
285
- ```
286
-
287
- ### TypeScript Types
288
-
289
- For programmatic deployment, here are the relevant TypeScript types:
290
-
291
- ```typescript
292
- import type { ResourceRequirements, PersistentVolumeSpec } from 'deploy-ability';
293
-
294
- const resources: ResourceRequirements = {
295
- cpu: 0.5,
296
- memory: "1Gi", // RAM for application runtime
297
- ephemeralStorage: "512Mi", // Container root filesystem
298
- persistentVolumes: [ // Optional: named volumes
299
- {
300
- name: "data",
301
- size: "10Gi",
302
- mount: "/data",
303
- class: "beta2" // Optional: defaults to beta2
304
- }
305
- ],
306
- gpu: { // Optional: GPU requirements
307
- units: 1,
308
- attributes: {
309
- vendor: {
310
- nvidia: [{ model: "rtx4090" }]
311
- }
312
- }
313
- }
314
- };
315
- ```
316
-
317
- ---
318
-