@crossdelta/infrastructure 0.8.0 → 0.8.1

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/dist/index.cjs CHANGED
@@ -1435,6 +1435,13 @@ var deployK8sService = (provider, namespace, config) => {
1435
1435
  },
1436
1436
  spec: {
1437
1437
  replicas,
1438
+ strategy: {
1439
+ type: "RollingUpdate",
1440
+ rollingUpdate: {
1441
+ maxSurge: normalizedConfig.strategy?.maxSurge ?? 0,
1442
+ maxUnavailable: normalizedConfig.strategy?.maxUnavailable ?? 1
1443
+ }
1444
+ },
1438
1445
  selector: {
1439
1446
  matchLabels: { app: normalizedConfig.name }
1440
1447
  },
package/dist/index.js CHANGED
@@ -1341,6 +1341,13 @@ var deployK8sService = (provider, namespace, config) => {
1341
1341
  },
1342
1342
  spec: {
1343
1343
  replicas,
1344
+ strategy: {
1345
+ type: "RollingUpdate",
1346
+ rollingUpdate: {
1347
+ maxSurge: normalizedConfig.strategy?.maxSurge ?? 0,
1348
+ maxUnavailable: normalizedConfig.strategy?.maxUnavailable ?? 1
1349
+ }
1350
+ },
1344
1351
  selector: {
1345
1352
  matchLabels: { app: normalizedConfig.name }
1346
1353
  },
@@ -256,6 +256,18 @@ export interface K8sServiceConfig {
256
256
  healthCheck?: K8sHealthCheck;
257
257
  /** Resource requests and limits */
258
258
  resources?: K8sResourceConfig;
259
+ /**
260
+ * Deployment strategy for rolling updates.
261
+ *
262
+ * Defaults to `maxSurge: 0, maxUnavailable: 1` which avoids memory spikes
263
+ * during rollouts by replacing pods one-at-a-time without surge.
264
+ */
265
+ strategy?: {
266
+ /** Max extra pods during rollout (default: 0) */
267
+ maxSurge?: number;
268
+ /** Max unavailable pods during rollout (default: 1) */
269
+ maxUnavailable?: number;
270
+ };
259
271
  /** Volume mounts for persistent storage */
260
272
  volumes?: K8sVolumeMount[];
261
273
  /** Command to run (overrides container entrypoint) */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crossdelta/infrastructure",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -35,7 +35,7 @@
35
35
  }
36
36
  },
37
37
  "dependencies": {
38
- "@crossdelta/cloudevents": "^0.7.13"
38
+ "@crossdelta/cloudevents": "^0.7.14"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "@pulumi/digitalocean": "^4.0.0",