@distr-sh/distr-sdk 2.11.6 → 2.11.8
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/client/service.d.ts +20 -10
- package/dist/client/service.js +43 -21
- package/dist/client/service.js.map +1 -1
- package/package.json +1 -1
package/dist/client/service.d.ts
CHANGED
|
@@ -37,18 +37,27 @@ export type UpdateDeploymentParams = {
|
|
|
37
37
|
valuesYaml?: string;
|
|
38
38
|
};
|
|
39
39
|
};
|
|
40
|
-
export type
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
export type UpdateAllDeploymentsUpdatedTarget = {
|
|
41
|
+
deploymentTargetId: string;
|
|
42
|
+
deploymentTargetName: string;
|
|
43
|
+
updatedDeployments: {
|
|
44
|
+
deploymentId: string;
|
|
44
45
|
previousVersionId: string;
|
|
45
46
|
newVersionId: string;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
deploymentTargetName: string;
|
|
47
|
+
}[];
|
|
48
|
+
skippedDeployments: {
|
|
49
|
+
deploymentId: string;
|
|
50
50
|
reason: string;
|
|
51
|
-
}
|
|
51
|
+
}[];
|
|
52
|
+
};
|
|
53
|
+
export type UpdateAllDeploymentsSkippedTarget = {
|
|
54
|
+
deploymentTargetId: string;
|
|
55
|
+
deploymentTargetName: string;
|
|
56
|
+
reason: string;
|
|
57
|
+
};
|
|
58
|
+
export type UpdateAllDeploymentsResult = {
|
|
59
|
+
updatedTargets: UpdateAllDeploymentsUpdatedTarget[];
|
|
60
|
+
skippedTargets: UpdateAllDeploymentsSkippedTarget[];
|
|
52
61
|
};
|
|
53
62
|
export type IsOutdatedResultItem = {
|
|
54
63
|
deployment: {
|
|
@@ -127,8 +136,9 @@ export declare class DistrService {
|
|
|
127
136
|
* Only updates deployments that are not already on the target version.
|
|
128
137
|
* @param applicationId The application ID to update
|
|
129
138
|
* @param applicationVersionId The target version ID to update to
|
|
139
|
+
* @param reuseConfigFromCurrentRevision If true, the existing deployment configuration (values YAML, env file, helm options, logsEnabled) will be reused for the update. Otherwise, the defaults will be used.
|
|
130
140
|
*/
|
|
131
|
-
updateAllDeployments(applicationId: string, applicationVersionId: string): Promise<UpdateAllDeploymentsResult>;
|
|
141
|
+
updateAllDeployments(applicationId: string, applicationVersionId: string, reuseConfigFromCurrentRevision?: boolean): Promise<UpdateAllDeploymentsResult>;
|
|
132
142
|
/**
|
|
133
143
|
* Checks if the deployments on the given deployment target are outdated, i.e. if there is a newer version of the application available.
|
|
134
144
|
* Returns results for all deployments on the target. Each result contains versions that are newer than the currently deployed one, ordered ascending.
|
package/dist/client/service.js
CHANGED
|
@@ -114,14 +114,15 @@ export class DistrService {
|
|
|
114
114
|
* Only updates deployments that are not already on the target version.
|
|
115
115
|
* @param applicationId The application ID to update
|
|
116
116
|
* @param applicationVersionId The target version ID to update to
|
|
117
|
+
* @param reuseConfigFromCurrentRevision If true, the existing deployment configuration (values YAML, env file, helm options, logsEnabled) will be reused for the update. Otherwise, the defaults will be used.
|
|
117
118
|
*/
|
|
118
|
-
async updateAllDeployments(applicationId, applicationVersionId) {
|
|
119
|
+
async updateAllDeployments(applicationId, applicationVersionId, reuseConfigFromCurrentRevision = false) {
|
|
119
120
|
const allTargets = await this.client.getDeploymentTargets();
|
|
120
121
|
const updatedTargets = [];
|
|
121
122
|
const skippedTargets = [];
|
|
122
123
|
for (const target of allTargets) {
|
|
123
|
-
const
|
|
124
|
-
if (
|
|
124
|
+
const deployments = target.deployments.filter((d) => d.application.id === applicationId);
|
|
125
|
+
if (deployments.length === 0) {
|
|
125
126
|
skippedTargets.push({
|
|
126
127
|
deploymentTargetId: target.id,
|
|
127
128
|
deploymentTargetName: target.name,
|
|
@@ -129,34 +130,55 @@ export class DistrService {
|
|
|
129
130
|
});
|
|
130
131
|
continue;
|
|
131
132
|
}
|
|
132
|
-
if (deployment.applicationVersionId === applicationVersionId) {
|
|
133
|
+
if (deployments.every((deployment) => deployment.applicationVersionId === applicationVersionId)) {
|
|
133
134
|
skippedTargets.push({
|
|
134
135
|
deploymentTargetId: target.id,
|
|
135
136
|
deploymentTargetName: target.name,
|
|
136
|
-
reason: '
|
|
137
|
+
reason: 'All deployments already on target version',
|
|
137
138
|
});
|
|
138
139
|
continue;
|
|
139
140
|
}
|
|
140
|
-
|
|
141
|
-
|
|
141
|
+
const updatedTarget = {
|
|
142
|
+
deploymentTargetId: target.id,
|
|
143
|
+
deploymentTargetName: target.name,
|
|
144
|
+
updatedDeployments: [],
|
|
145
|
+
skippedDeployments: [],
|
|
146
|
+
};
|
|
147
|
+
for (const deployment of deployments) {
|
|
148
|
+
if (deployment.applicationVersionId === applicationVersionId) {
|
|
149
|
+
updatedTarget.skippedDeployments.push({
|
|
150
|
+
deploymentId: deployment.id,
|
|
151
|
+
reason: 'Already on target version',
|
|
152
|
+
});
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
const deploymentRequest = {
|
|
142
156
|
deploymentTargetId: target.id,
|
|
143
157
|
deploymentId: deployment.id,
|
|
144
158
|
applicationVersionId,
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
+
};
|
|
160
|
+
if (reuseConfigFromCurrentRevision) {
|
|
161
|
+
deploymentRequest.valuesYaml = deployment.valuesYaml;
|
|
162
|
+
deploymentRequest.envFileData = deployment.envFileData;
|
|
163
|
+
deploymentRequest.logsEnabled = deployment.logsEnabled;
|
|
164
|
+
deploymentRequest.helmOptions = deployment.helmOptions;
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
await this.client.createOrUpdateDeployment(deploymentRequest);
|
|
168
|
+
updatedTarget.updatedDeployments.push({
|
|
169
|
+
deploymentId: deployment.id,
|
|
170
|
+
previousVersionId: deployment.applicationVersionId,
|
|
171
|
+
newVersionId: applicationVersionId,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
updatedTarget.skippedDeployments.push({
|
|
176
|
+
deploymentId: deployment.id,
|
|
177
|
+
reason: `Update failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
159
180
|
}
|
|
181
|
+
updatedTargets.push(updatedTarget);
|
|
160
182
|
}
|
|
161
183
|
return { updatedTargets, skippedTargets };
|
|
162
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/client/service.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/client/service.ts"],"names":[],"mappings":"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"}
|