@serve.zone/interfaces 32.11.0 → 32.13.0
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/changelog.md +29 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/data/clusternode.d.ts +11 -4
- package/dist_ts/data/clusternode.js +41 -6
- package/dist_ts/data/fleetcutover.d.ts +453 -0
- package/dist_ts/data/fleetcutover.js +943 -0
- package/dist_ts/data/index.d.ts +1 -0
- package/dist_ts/data/index.js +2 -1
- package/dist_ts/data/serviceruntime.d.ts +2 -0
- package/dist_ts/data/serviceruntime.js +3 -1
- package/dist_ts/requests/fleetcutover.d.ts +124 -0
- package/dist_ts/requests/fleetcutover.js +2 -0
- package/dist_ts/requests/index.d.ts +2 -1
- package/dist_ts/requests/index.js +3 -2
- package/dist_ts/requests/service.d.ts +74 -5
- package/package.json +1 -1
- package/readme.md +129 -4
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/data/clusternode.ts +55 -5
- package/ts/data/fleetcutover.ts +1557 -0
- package/ts/data/index.ts +1 -0
- package/ts/data/serviceruntime.ts +2 -0
- package/ts/requests/fleetcutover.ts +136 -0
- package/ts/requests/index.ts +2 -0
- package/ts/requests/service.ts +83 -5
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
import type { TSha256Digest } from './immutableimage.js';
|
|
2
|
+
import type { IClusterRuntimeReference, TClusterRuntimePhase } from './clusterruntime.js';
|
|
3
|
+
import type { IRuntimeAssignmentReference, IRuntimeAuthorityReference } from './runtimeassignment.js';
|
|
4
|
+
import type { IRuntimeSessionBinding } from './runtimesession.js';
|
|
5
|
+
/**
|
|
6
|
+
* A server-owned accepted record reference. It contains no bearer, secret, or proof boolean.
|
|
7
|
+
* Consumers dereference it against the current owner record before applying policy.
|
|
8
|
+
*/
|
|
9
|
+
export type IFleetCutoverAcceptedEvidenceReference = IRuntimeAuthorityReference;
|
|
10
|
+
export type TFleetCutoverPlatformOwner = 'application' | 'coreflow' | 'corestore' | 'coretraffic';
|
|
11
|
+
export type TFleetCutoverMountClass = 'docker-socket' | 'cgroup' | 'persistent-volume' | 'bind' | 'tmpfs' | 'other' | 'unknown';
|
|
12
|
+
export type TFleetCutoverMountType = 'volume' | 'bind' | 'tmpfs' | 'unknown';
|
|
13
|
+
/**
|
|
14
|
+
* Value-free mount identity. The three digests are derived from exact Docker Engine bytes by the
|
|
15
|
+
* helpers below; no path, volume-name, case, separator, or alias normalization is permitted.
|
|
16
|
+
*/
|
|
17
|
+
export interface IFleetCutoverMountDescriptor {
|
|
18
|
+
type: TFleetCutoverMountType;
|
|
19
|
+
classification: TFleetCutoverMountClass;
|
|
20
|
+
sourceIdentityDigest: TSha256Digest;
|
|
21
|
+
targetIdentityDigest: TSha256Digest;
|
|
22
|
+
readOnly: boolean;
|
|
23
|
+
mountIdentityDigest: TSha256Digest;
|
|
24
|
+
}
|
|
25
|
+
export interface IFleetCutoverMountSourceIdentityInput {
|
|
26
|
+
/** Docker Engine Mount.Type exactly as returned; unsupported values are represented as unknown. */
|
|
27
|
+
type: TFleetCutoverMountType;
|
|
28
|
+
/** Docker Engine Mount.Source exact UTF-8 bytes, including the empty string; never normalize. */
|
|
29
|
+
source: string;
|
|
30
|
+
}
|
|
31
|
+
export interface IFleetCutoverMountTargetIdentityInput {
|
|
32
|
+
/** Docker Engine Mount.Destination exact UTF-8 bytes; never normalize. */
|
|
33
|
+
target: string;
|
|
34
|
+
}
|
|
35
|
+
export type TFleetCutoverDockerTaskState = 'new' | 'allocated' | 'pending' | 'assigned' | 'accepted' | 'preparing' | 'ready' | 'starting' | 'running' | 'complete' | 'shutdown' | 'failed' | 'rejected' | 'remove' | 'orphaned';
|
|
36
|
+
export type TFleetCutoverDockerDesiredState = TFleetCutoverDockerTaskState;
|
|
37
|
+
export type TFleetCutoverDockerServiceMode = {
|
|
38
|
+
kind: 'global';
|
|
39
|
+
} | {
|
|
40
|
+
kind: 'replicated';
|
|
41
|
+
replicas: number;
|
|
42
|
+
};
|
|
43
|
+
/** Only the ownership labels used by cutover policy are transported. */
|
|
44
|
+
export interface IFleetCutoverDockerOwnershipLabels {
|
|
45
|
+
serviceId: string | null;
|
|
46
|
+
platformOwner: Exclude<TFleetCutoverPlatformOwner, 'application'> | null;
|
|
47
|
+
}
|
|
48
|
+
/** Value-free immutable identity of one Docker service specification. */
|
|
49
|
+
export interface IFleetCutoverDockerService {
|
|
50
|
+
dockerServiceId: string;
|
|
51
|
+
dockerServiceName: string;
|
|
52
|
+
specVersion: number;
|
|
53
|
+
specDigest: TSha256Digest;
|
|
54
|
+
imageDigest: TSha256Digest;
|
|
55
|
+
mode: TFleetCutoverDockerServiceMode;
|
|
56
|
+
desiredTaskCount: number;
|
|
57
|
+
constraintCount: number;
|
|
58
|
+
constraintSetDigest: TSha256Digest;
|
|
59
|
+
mounts: IFleetCutoverMountDescriptor[];
|
|
60
|
+
ownershipLabels: IFleetCutoverDockerOwnershipLabels;
|
|
61
|
+
}
|
|
62
|
+
/** Value-free physical task/container evidence from the same Docker census. */
|
|
63
|
+
export interface IFleetCutoverDockerTask {
|
|
64
|
+
dockerTaskId: string;
|
|
65
|
+
dockerServiceId: string;
|
|
66
|
+
/** Null exactly when Docker Task.NodeID is absent and the task remains unassigned. */
|
|
67
|
+
swarmNodeId: string | null;
|
|
68
|
+
/** Resolved from the same manager census as swarmNodeId; null iff swarmNodeId is null. */
|
|
69
|
+
nodeName: string | null;
|
|
70
|
+
desiredState: TFleetCutoverDockerDesiredState;
|
|
71
|
+
state: TFleetCutoverDockerTaskState;
|
|
72
|
+
container: null | {
|
|
73
|
+
dockerContainerId: string;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
export interface IFleetCutoverPhysicalContainer {
|
|
77
|
+
dockerContainerId: string;
|
|
78
|
+
dockerServiceId: string | null;
|
|
79
|
+
dockerTaskId: string | null;
|
|
80
|
+
imageId: TSha256Digest;
|
|
81
|
+
serviceIdLabel: string | null;
|
|
82
|
+
mounts: IFleetCutoverMountDescriptor[];
|
|
83
|
+
}
|
|
84
|
+
export interface IFleetCutoverContainerSetIdentity {
|
|
85
|
+
containerCount: number;
|
|
86
|
+
containerIdsDigest: TSha256Digest;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* One node's local Docker daemon snapshot. `before` and `after` are independently read bounded
|
|
90
|
+
* container-ID sets around all inspect calls and must equal the transported container list.
|
|
91
|
+
*/
|
|
92
|
+
export interface IFleetCutoverLocalNodeSnapshot {
|
|
93
|
+
swarmNodeId: string;
|
|
94
|
+
before: IFleetCutoverContainerSetIdentity;
|
|
95
|
+
containers: IFleetCutoverPhysicalContainer[];
|
|
96
|
+
after: IFleetCutoverContainerSetIdentity;
|
|
97
|
+
snapshotDigest: TSha256Digest;
|
|
98
|
+
}
|
|
99
|
+
/** Manager-visible Swarm state only; physical containers come from each node's own observation. */
|
|
100
|
+
export interface IFleetCutoverDockerInventory {
|
|
101
|
+
swarmClusterId: string;
|
|
102
|
+
managerSwarmNodeId: string;
|
|
103
|
+
services: IFleetCutoverDockerService[];
|
|
104
|
+
tasks: IFleetCutoverDockerTask[];
|
|
105
|
+
}
|
|
106
|
+
export interface IFleetCutoverManagerSnapshot {
|
|
107
|
+
inventory: IFleetCutoverDockerInventory;
|
|
108
|
+
inventoryDigest: TSha256Digest;
|
|
109
|
+
}
|
|
110
|
+
/** Cloudly-owned reference to one already authenticated and accepted Spark observation. */
|
|
111
|
+
export interface IFleetCutoverSparkObservationReference {
|
|
112
|
+
observation: IFleetCutoverAcceptedEvidenceReference;
|
|
113
|
+
nodeId: string;
|
|
114
|
+
swarmNodeId: string;
|
|
115
|
+
credentialGeneration: number;
|
|
116
|
+
reporterSessionId: string;
|
|
117
|
+
observationSequence: number;
|
|
118
|
+
observedAt: number;
|
|
119
|
+
acceptedAt: number;
|
|
120
|
+
freshUntil: number;
|
|
121
|
+
observationDigest: TSha256Digest;
|
|
122
|
+
snapshotDigest: TSha256Digest;
|
|
123
|
+
}
|
|
124
|
+
export interface IFleetCutoverManagerCensusRead extends IFleetCutoverSparkObservationReference {
|
|
125
|
+
swarmSnapshotDigest: TSha256Digest;
|
|
126
|
+
inventoryDigest: TSha256Digest;
|
|
127
|
+
}
|
|
128
|
+
export interface IFleetCutoverTargetSetReference {
|
|
129
|
+
cloudlyClusterId: string;
|
|
130
|
+
generation: number;
|
|
131
|
+
targetSetDigest: TSha256Digest;
|
|
132
|
+
}
|
|
133
|
+
/** Cloudly-assembled candidate over accepted Spark observations; Spark never submits this shape. */
|
|
134
|
+
export interface IFleetCutoverCensusCandidate {
|
|
135
|
+
clusterId: string;
|
|
136
|
+
runtime: IClusterRuntimeReference;
|
|
137
|
+
targetSet: IFleetCutoverTargetSetReference;
|
|
138
|
+
inventory: IFleetCutoverDockerInventory;
|
|
139
|
+
/** Exactly two consecutive accepted reads by the same current manager session. */
|
|
140
|
+
managerReads: [IFleetCutoverManagerCensusRead, IFleetCutoverManagerCensusRead];
|
|
141
|
+
/** Exactly one accepted local physical-container observation per current target node. */
|
|
142
|
+
nodeObservations: IFleetCutoverSparkObservationReference[];
|
|
143
|
+
/** Fixed by the oldest referenced observation; reassembly cannot extend it. */
|
|
144
|
+
freshUntil: number;
|
|
145
|
+
}
|
|
146
|
+
/** Cloudly-owned accepted census. Acceptance freshness and authentication are owner policy. */
|
|
147
|
+
export interface IFleetCutoverCensus extends IFleetCutoverCensusCandidate {
|
|
148
|
+
id: string;
|
|
149
|
+
generation: number;
|
|
150
|
+
acceptedAt: number;
|
|
151
|
+
digest: TSha256Digest;
|
|
152
|
+
}
|
|
153
|
+
export interface IFleetCutoverScopeEntry {
|
|
154
|
+
dockerServiceId: string;
|
|
155
|
+
serviceId: string | null;
|
|
156
|
+
owner: TFleetCutoverPlatformOwner | 'unknown';
|
|
157
|
+
serviceAuthority: IFleetCutoverAcceptedEvidenceReference | null;
|
|
158
|
+
classificationAuthority: IFleetCutoverAcceptedEvidenceReference | null;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Authoritative cutover scope. `complete` is a Cloudly policy verdict over current service
|
|
162
|
+
* authority and a fresh accepted census; structural validation only checks its closed content.
|
|
163
|
+
*/
|
|
164
|
+
export interface IFleetCutoverScope {
|
|
165
|
+
id: string;
|
|
166
|
+
generation: number;
|
|
167
|
+
previous: IFleetCutoverAcceptedEvidenceReference | null;
|
|
168
|
+
state: 'incomplete' | 'complete';
|
|
169
|
+
clusterId: string;
|
|
170
|
+
census: IFleetCutoverAcceptedEvidenceReference;
|
|
171
|
+
runtime: IClusterRuntimeReference;
|
|
172
|
+
targetSet: IFleetCutoverTargetSetReference;
|
|
173
|
+
entries: IFleetCutoverScopeEntry[];
|
|
174
|
+
actorId: string;
|
|
175
|
+
acceptedAt: number;
|
|
176
|
+
digest: TSha256Digest;
|
|
177
|
+
}
|
|
178
|
+
/** Legitimate administrator classification bound to one current accepted census. */
|
|
179
|
+
export interface IFleetCutoverClassification {
|
|
180
|
+
dockerServiceId: string;
|
|
181
|
+
serviceId: string;
|
|
182
|
+
owner: TFleetCutoverPlatformOwner;
|
|
183
|
+
}
|
|
184
|
+
export interface IFleetCutoverScopeClassificationRequest {
|
|
185
|
+
mutationId: string;
|
|
186
|
+
clusterId: string;
|
|
187
|
+
expectedScopeGeneration: number;
|
|
188
|
+
census: IFleetCutoverAcceptedEvidenceReference;
|
|
189
|
+
classifications: IFleetCutoverClassification[];
|
|
190
|
+
}
|
|
191
|
+
/** Server-owned pre-switch intent. It is not a ready storage claim or mount authority. */
|
|
192
|
+
export interface IFleetCutoverVolumeHandoffIntent {
|
|
193
|
+
id: string;
|
|
194
|
+
generation: number;
|
|
195
|
+
clusterId: string;
|
|
196
|
+
nodeId: string;
|
|
197
|
+
serviceId: string;
|
|
198
|
+
volumeId: string;
|
|
199
|
+
mountIdentityDigest: TSha256Digest;
|
|
200
|
+
sourceLineageDigest: TSha256Digest;
|
|
201
|
+
storageRequestDigest: TSha256Digest;
|
|
202
|
+
runtime: IClusterRuntimeReference & {
|
|
203
|
+
phase: 'draining';
|
|
204
|
+
};
|
|
205
|
+
scope: IFleetCutoverAcceptedEvidenceReference;
|
|
206
|
+
targetSet: IFleetCutoverTargetSetReference;
|
|
207
|
+
legacyStorageEvidence: IFleetCutoverAcceptedEvidenceReference;
|
|
208
|
+
sourceNodeObservation: IFleetCutoverAcceptedEvidenceReference;
|
|
209
|
+
acceptedAt: number;
|
|
210
|
+
digest: TSha256Digest;
|
|
211
|
+
}
|
|
212
|
+
interface IFleetCutoverVolumeFenceBase {
|
|
213
|
+
id: string;
|
|
214
|
+
generation: number;
|
|
215
|
+
previous: IFleetCutoverAcceptedEvidenceReference | null;
|
|
216
|
+
clusterId: string;
|
|
217
|
+
nodeId: string;
|
|
218
|
+
serviceId: string;
|
|
219
|
+
volumeId: string;
|
|
220
|
+
mountIdentityDigest: TSha256Digest;
|
|
221
|
+
handoffIntent: IFleetCutoverAcceptedEvidenceReference;
|
|
222
|
+
heldRuntime: IClusterRuntimeReference & {
|
|
223
|
+
phase: 'draining';
|
|
224
|
+
};
|
|
225
|
+
heldAt: number;
|
|
226
|
+
digest: TSha256Digest;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Pallet root-local durable negative authority. `held` grants no runtime session, assignment,
|
|
230
|
+
* attachment, reservation, confirmation, or execution authority.
|
|
231
|
+
*/
|
|
232
|
+
export type TFleetCutoverVolumeFence = (IFleetCutoverVolumeFenceBase & {
|
|
233
|
+
state: 'held';
|
|
234
|
+
}) | (IFleetCutoverVolumeFenceBase & {
|
|
235
|
+
state: 'consumed';
|
|
236
|
+
consumedRuntime: IClusterRuntimeReference & {
|
|
237
|
+
phase: 'pallet';
|
|
238
|
+
};
|
|
239
|
+
adoptionReceipt: IFleetCutoverAcceptedEvidenceReference;
|
|
240
|
+
claim: IRuntimeAuthorityReference;
|
|
241
|
+
consumedAt: number;
|
|
242
|
+
});
|
|
243
|
+
/** Corestore's one-shot accepted result around the initial lineage/RWO CAS. */
|
|
244
|
+
export interface IFleetCutoverCorestoreAdoptionReceipt {
|
|
245
|
+
id: string;
|
|
246
|
+
generation: 1;
|
|
247
|
+
clusterId: string;
|
|
248
|
+
nodeId: string;
|
|
249
|
+
serviceId: string;
|
|
250
|
+
volumeId: string;
|
|
251
|
+
mountIdentityDigest: TSha256Digest;
|
|
252
|
+
handoffIntent: IFleetCutoverAcceptedEvidenceReference;
|
|
253
|
+
palletFence: IFleetCutoverAcceptedEvidenceReference;
|
|
254
|
+
sourceLineageDigest: TSha256Digest;
|
|
255
|
+
claim: IRuntimeAuthorityReference;
|
|
256
|
+
accessMode: 'ReadWriteOnce';
|
|
257
|
+
acceptedAt: number;
|
|
258
|
+
digest: TSha256Digest;
|
|
259
|
+
}
|
|
260
|
+
export interface IFleetCutoverCoreflowRetirementEvidence {
|
|
261
|
+
id: string;
|
|
262
|
+
generation: number;
|
|
263
|
+
clusterId: string;
|
|
264
|
+
scope: IFleetCutoverAcceptedEvidenceReference;
|
|
265
|
+
targetSet: IFleetCutoverTargetSetReference;
|
|
266
|
+
runtime: IClusterRuntimeReference;
|
|
267
|
+
relay: {
|
|
268
|
+
serviceId: string;
|
|
269
|
+
nodeId: string;
|
|
270
|
+
dockerServiceId: string;
|
|
271
|
+
dockerContainerId: string;
|
|
272
|
+
specVersion: number;
|
|
273
|
+
specDigest: TSha256Digest;
|
|
274
|
+
imageDigest: TSha256Digest;
|
|
275
|
+
managerObservation: IFleetCutoverAcceptedEvidenceReference;
|
|
276
|
+
nodeObservation: IFleetCutoverAcceptedEvidenceReference;
|
|
277
|
+
credential: IRuntimeAuthorityReference;
|
|
278
|
+
acceptedRegistration: IFleetCutoverAcceptedEvidenceReference;
|
|
279
|
+
version: string;
|
|
280
|
+
};
|
|
281
|
+
spark: {
|
|
282
|
+
nodeId: string;
|
|
283
|
+
credentialGeneration: number;
|
|
284
|
+
reporterSessionId: string;
|
|
285
|
+
observationSequence: number;
|
|
286
|
+
observation: IFleetCutoverAcceptedEvidenceReference;
|
|
287
|
+
bundleVersion: string;
|
|
288
|
+
bundleSourceCommit: string;
|
|
289
|
+
bundleManifestSha256: string;
|
|
290
|
+
unitName: string;
|
|
291
|
+
unitDigest: TSha256Digest;
|
|
292
|
+
};
|
|
293
|
+
legacy: {
|
|
294
|
+
credential: IRuntimeAuthorityReference;
|
|
295
|
+
invalidation: IFleetCutoverAcceptedEvidenceReference;
|
|
296
|
+
oldModeRefusal: IFleetCutoverAcceptedEvidenceReference;
|
|
297
|
+
configurationCas: IFleetCutoverAcceptedEvidenceReference;
|
|
298
|
+
sourceOwnerGeneration: number;
|
|
299
|
+
sourceSha256: string;
|
|
300
|
+
sourceDisposition: 'retained-inert' | 'removed';
|
|
301
|
+
};
|
|
302
|
+
acceptedAt: number;
|
|
303
|
+
digest: TSha256Digest;
|
|
304
|
+
}
|
|
305
|
+
export interface IFleetCutoverIngressAuthority {
|
|
306
|
+
id: string;
|
|
307
|
+
generation: number;
|
|
308
|
+
clusterId: string;
|
|
309
|
+
runtime: IClusterRuntimeReference & {
|
|
310
|
+
phase: 'pallet';
|
|
311
|
+
};
|
|
312
|
+
scope: IFleetCutoverAcceptedEvidenceReference;
|
|
313
|
+
targetSet: IFleetCutoverTargetSetReference;
|
|
314
|
+
ingressServiceId: string;
|
|
315
|
+
assignment: IRuntimeAssignmentReference;
|
|
316
|
+
session: IRuntimeSessionBinding;
|
|
317
|
+
ingressRegistration: IFleetCutoverAcceptedEvidenceReference;
|
|
318
|
+
registrationRouteRevision: number | null;
|
|
319
|
+
legacyIngressAbsence: IFleetCutoverAcceptedEvidenceReference;
|
|
320
|
+
sourcePublication: IFleetCutoverAcceptedEvidenceReference;
|
|
321
|
+
targetPublication: IFleetCutoverAcceptedEvidenceReference;
|
|
322
|
+
portTransfer: IFleetCutoverAcceptedEvidenceReference;
|
|
323
|
+
routeTableRevision: number;
|
|
324
|
+
routeTableReadback: IFleetCutoverAcceptedEvidenceReference;
|
|
325
|
+
acceptedAt: number;
|
|
326
|
+
digest: TSha256Digest;
|
|
327
|
+
}
|
|
328
|
+
interface IFleetCutoverPhaseAdvanceBase {
|
|
329
|
+
mutationId: string;
|
|
330
|
+
clusterId: string;
|
|
331
|
+
currentRuntime: IClusterRuntimeReference;
|
|
332
|
+
scope: IFleetCutoverAcceptedEvidenceReference;
|
|
333
|
+
targetSet: IFleetCutoverTargetSetReference;
|
|
334
|
+
}
|
|
335
|
+
/** Caller intent only. Cloudly dereferences every receipt and applies the transition atomically. */
|
|
336
|
+
export type TFleetCutoverPhaseAdvance = (IFleetCutoverPhaseAdvanceBase & {
|
|
337
|
+
from: 'swarm';
|
|
338
|
+
to: 'draining';
|
|
339
|
+
coreflowRetirement: IFleetCutoverAcceptedEvidenceReference;
|
|
340
|
+
}) | (IFleetCutoverPhaseAdvanceBase & {
|
|
341
|
+
from: 'draining';
|
|
342
|
+
to: 'switching';
|
|
343
|
+
swarmQuiescence: IFleetCutoverAcceptedEvidenceReference;
|
|
344
|
+
heldRuntimeSpecs: IFleetCutoverAcceptedEvidenceReference;
|
|
345
|
+
heldVolumeFences: IFleetCutoverAcceptedEvidenceReference;
|
|
346
|
+
}) | (IFleetCutoverPhaseAdvanceBase & {
|
|
347
|
+
from: 'switching';
|
|
348
|
+
to: 'pallet';
|
|
349
|
+
heldRuntimeSpecs: IFleetCutoverAcceptedEvidenceReference;
|
|
350
|
+
heldVolumeFences: IFleetCutoverAcceptedEvidenceReference;
|
|
351
|
+
palletPreparation: IFleetCutoverAcceptedEvidenceReference;
|
|
352
|
+
});
|
|
353
|
+
export type TFleetCutoverRuntimeSpecRelease = {
|
|
354
|
+
kind: 'ingress';
|
|
355
|
+
mutationId: string;
|
|
356
|
+
clusterId: string;
|
|
357
|
+
serviceId: string;
|
|
358
|
+
expectedSpecRevision: number;
|
|
359
|
+
runtime: IClusterRuntimeReference & {
|
|
360
|
+
phase: 'pallet';
|
|
361
|
+
};
|
|
362
|
+
scope: IFleetCutoverAcceptedEvidenceReference;
|
|
363
|
+
emptyPublishedPortsPolicy: IFleetCutoverAcceptedEvidenceReference;
|
|
364
|
+
} | {
|
|
365
|
+
kind: 'application';
|
|
366
|
+
mutationId: string;
|
|
367
|
+
clusterId: string;
|
|
368
|
+
serviceId: string;
|
|
369
|
+
expectedSpecRevision: number;
|
|
370
|
+
runtime: IClusterRuntimeReference & {
|
|
371
|
+
phase: 'pallet';
|
|
372
|
+
};
|
|
373
|
+
scope: IFleetCutoverAcceptedEvidenceReference;
|
|
374
|
+
ingressAuthority: IFleetCutoverAcceptedEvidenceReference;
|
|
375
|
+
};
|
|
376
|
+
export declare const fleetCutoverContract: Readonly<{
|
|
377
|
+
readonly maximumServices: 512;
|
|
378
|
+
readonly maximumTasks: 4096;
|
|
379
|
+
readonly maximumNodes: 1024;
|
|
380
|
+
readonly maximumContainersPerNode: 512;
|
|
381
|
+
readonly maximumMountsPerOwner: 32;
|
|
382
|
+
readonly maximumClassifications: 512;
|
|
383
|
+
readonly observationFreshnessMs: 300000;
|
|
384
|
+
readonly mountSourceIdentityDigestDomain: "serve.zone/fleet-cutover-mount-source-identity";
|
|
385
|
+
readonly mountTargetIdentityDigestDomain: "serve.zone/fleet-cutover-mount-target-identity";
|
|
386
|
+
readonly mountIdentityDigestDomain: "serve.zone/fleet-cutover-mount-identity";
|
|
387
|
+
readonly containerSetIdentityDigestDomain: "serve.zone/fleet-cutover-container-set-identity";
|
|
388
|
+
readonly localNodeSnapshotDigestDomain: "serve.zone/fleet-cutover-local-node-snapshot";
|
|
389
|
+
readonly managerSnapshotDigestDomain: "serve.zone/fleet-cutover-manager-snapshot";
|
|
390
|
+
readonly censusDigestDomain: "serve.zone/fleet-cutover-census";
|
|
391
|
+
readonly scopeDigestDomain: "serve.zone/fleet-cutover-scope";
|
|
392
|
+
readonly volumeHandoffDigestDomain: "serve.zone/fleet-cutover-volume-handoff";
|
|
393
|
+
readonly volumeFenceDigestDomain: "serve.zone/fleet-cutover-volume-fence";
|
|
394
|
+
readonly corestoreAdoptionDigestDomain: "serve.zone/fleet-cutover-corestore-adoption";
|
|
395
|
+
readonly coreflowRetirementDigestDomain: "serve.zone/fleet-cutover-coreflow-retirement";
|
|
396
|
+
readonly ingressAuthorityDigestDomain: "serve.zone/fleet-cutover-ingress-authority";
|
|
397
|
+
readonly legalPhaseTransitions: Readonly<{
|
|
398
|
+
swarm: "draining";
|
|
399
|
+
draining: "switching";
|
|
400
|
+
switching: "pallet";
|
|
401
|
+
pallet: null;
|
|
402
|
+
}>;
|
|
403
|
+
}>;
|
|
404
|
+
export declare const computeFleetCutoverMountSourceIdentityDigest: (valueArg: IFleetCutoverMountSourceIdentityInput) => Promise<TSha256Digest>;
|
|
405
|
+
export declare const computeFleetCutoverMountTargetIdentityDigest: (valueArg: IFleetCutoverMountTargetIdentityInput) => Promise<TSha256Digest>;
|
|
406
|
+
export declare const computeFleetCutoverMountIdentityDigest: (valueArg: Omit<IFleetCutoverMountDescriptor, "mountIdentityDigest">) => Promise<TSha256Digest>;
|
|
407
|
+
export declare const computeFleetCutoverContainerSetIdentityDigest: (containerIdsArg: string[]) => Promise<TSha256Digest>;
|
|
408
|
+
export declare const snapshotFleetCutoverLocalNodeSnapshot: (valueArg: unknown) => IFleetCutoverLocalNodeSnapshot;
|
|
409
|
+
export declare const computeFleetCutoverLocalNodeSnapshotDigest: (valueArg: unknown) => Promise<TSha256Digest>;
|
|
410
|
+
export declare const validateFleetCutoverLocalNodeSnapshot: (valueArg: unknown) => Promise<string[]>;
|
|
411
|
+
export declare const computeFleetCutoverInventoryDigest: (valueArg: unknown) => Promise<TSha256Digest>;
|
|
412
|
+
export declare const snapshotFleetCutoverManagerSnapshot: (valueArg: unknown) => Promise<IFleetCutoverManagerSnapshot>;
|
|
413
|
+
export declare const computeFleetCutoverManagerSnapshotDigest: (valueArg: unknown) => Promise<TSha256Digest>;
|
|
414
|
+
export declare const validateFleetCutoverManagerSnapshot: (valueArg: unknown) => Promise<string[]>;
|
|
415
|
+
export declare const snapshotFleetCutoverCensusCandidate: (valueArg: unknown) => Promise<IFleetCutoverCensusCandidate>;
|
|
416
|
+
export declare const snapshotFleetCutoverCensus: (valueArg: unknown) => Promise<IFleetCutoverCensus>;
|
|
417
|
+
export declare const computeFleetCutoverCensusDigest: (valueArg: unknown) => Promise<TSha256Digest>;
|
|
418
|
+
export declare const validateFleetCutoverCensus: (valueArg: unknown) => Promise<string[]>;
|
|
419
|
+
export declare const fleetCutoverEvidenceReferenceOf: (valueArg: {
|
|
420
|
+
id: string;
|
|
421
|
+
generation: number;
|
|
422
|
+
digest: TSha256Digest;
|
|
423
|
+
}) => IFleetCutoverAcceptedEvidenceReference;
|
|
424
|
+
export declare const snapshotFleetCutoverAcceptedEvidenceReference: (valueArg: unknown) => IFleetCutoverAcceptedEvidenceReference;
|
|
425
|
+
export declare const snapshotFleetCutoverScope: (valueArg: unknown) => IFleetCutoverScope;
|
|
426
|
+
export declare const computeFleetCutoverScopeDigest: (valueArg: unknown) => Promise<TSha256Digest>;
|
|
427
|
+
export declare const validateFleetCutoverScope: (valueArg: unknown) => Promise<string[]>;
|
|
428
|
+
export declare const snapshotFleetCutoverScopeClassificationRequest: (valueArg: unknown) => IFleetCutoverScopeClassificationRequest;
|
|
429
|
+
export declare const snapshotFleetCutoverTargetSetReference: (valueArg: unknown) => IFleetCutoverTargetSetReference;
|
|
430
|
+
export declare const snapshotFleetCutoverVolumeHandoffIntent: (valueArg: unknown) => IFleetCutoverVolumeHandoffIntent;
|
|
431
|
+
export declare const computeFleetCutoverVolumeHandoffDigest: (valueArg: unknown) => Promise<TSha256Digest>;
|
|
432
|
+
export declare const snapshotFleetCutoverVolumeFence: (valueArg: unknown) => TFleetCutoverVolumeFence;
|
|
433
|
+
export declare const computeFleetCutoverVolumeFenceDigest: (valueArg: unknown) => Promise<TSha256Digest>;
|
|
434
|
+
export declare const snapshotFleetCutoverCorestoreAdoptionReceipt: (valueArg: unknown) => IFleetCutoverCorestoreAdoptionReceipt;
|
|
435
|
+
export declare const computeFleetCutoverCorestoreAdoptionDigest: (valueArg: unknown) => Promise<TSha256Digest>;
|
|
436
|
+
/** Content join only. The Pallet owner must dereference both accepted records while holding its CAS. */
|
|
437
|
+
export declare const bindFleetCutoverAdoptionToVolumeFence: (adoptionArg: unknown, fenceArg: unknown) => {
|
|
438
|
+
adoption: IFleetCutoverCorestoreAdoptionReceipt;
|
|
439
|
+
fence: TFleetCutoverVolumeFence;
|
|
440
|
+
};
|
|
441
|
+
export declare const validateFleetCutoverVolumeHandoffIntent: (valueArg: unknown) => Promise<string[]>;
|
|
442
|
+
export declare const validateFleetCutoverVolumeFence: (valueArg: unknown) => Promise<string[]>;
|
|
443
|
+
export declare const validateFleetCutoverCorestoreAdoptionReceipt: (valueArg: unknown) => Promise<string[]>;
|
|
444
|
+
export declare const snapshotFleetCutoverCoreflowRetirementEvidence: (valueArg: unknown) => IFleetCutoverCoreflowRetirementEvidence;
|
|
445
|
+
export declare const computeFleetCutoverCoreflowRetirementDigest: (valueArg: unknown) => Promise<TSha256Digest>;
|
|
446
|
+
export declare const validateFleetCutoverCoreflowRetirementEvidence: (valueArg: unknown) => Promise<string[]>;
|
|
447
|
+
export declare const snapshotFleetCutoverIngressAuthority: (valueArg: unknown) => IFleetCutoverIngressAuthority;
|
|
448
|
+
export declare const computeFleetCutoverIngressAuthorityDigest: (valueArg: unknown) => Promise<TSha256Digest>;
|
|
449
|
+
export declare const validateFleetCutoverIngressAuthority: (valueArg: unknown) => Promise<string[]>;
|
|
450
|
+
export declare const isLegalFleetCutoverPhaseTransition: (fromArg: TClusterRuntimePhase, toArg: TClusterRuntimePhase) => boolean;
|
|
451
|
+
export declare const snapshotFleetCutoverPhaseAdvance: (valueArg: unknown) => TFleetCutoverPhaseAdvance;
|
|
452
|
+
export declare const snapshotFleetCutoverRuntimeSpecRelease: (valueArg: unknown) => TFleetCutoverRuntimeSpecRelease;
|
|
453
|
+
export {};
|