Skip to content

Commit 3992894

Browse files
Skip manifest stability check for fleet (#20954)
* Skip manifest stability check for fleet * correcting typo
1 parent f5dd878 commit 3992894

File tree

8 files changed

+30
-9
lines changed

8 files changed

+30
-9
lines changed

Tasks/KubernetesManifestV1/Tests/L0.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ describe('Kubernetes Manifests Suite', function () {
3232
delete process.env[shared.TestEnvVars.baselineAndCanaryReplicas];
3333
delete process.env[shared.TestEnvVars.trafficSplitMethod];
3434
delete process.env[shared.TestEnvVars.containers];
35+
delete process.env[shared.TestEnvVars.resourceType]
3536
delete process.env.RemoveNamespaceFromEndpoint;
3637
});
3738

@@ -46,6 +47,18 @@ describe('Kubernetes Manifests Suite', function () {
4647
assert(tr.stdout.indexOf('nginx-service 104.211.243.77') != -1, 'nginx-service external IP is 104.211.243.77')
4748
});
4849

50+
it('Fleet deployment skips checkManifestStability step', async () => {
51+
const tp = path.join(__dirname, 'TestSetup.js');
52+
const tr: ttm.MockTestRunner = new ttm.MockTestRunner(tp);
53+
process.env[shared.TestEnvVars.action] = shared.Actions.deploy;
54+
process.env[shared.TestEnvVars.strategy] = shared.Strategy.none;
55+
process.env[shared.TestEnvVars.imagePullSecrets] = 'test-key1\ntest-key2';
56+
process.env[shared.TestEnvVars.resourceType] = 'Microsoft.ContainerService/fleets';
57+
await tr.runAsync();
58+
assert(tr.stdout.indexOf('checking manifest stability') === -1, 'checking manifest stability should not be printed');
59+
assert(tr.succeeded, 'task should have succeeded');
60+
});
61+
4962
it('Run successfully for deploy canary', async () => {
5063
const tp = path.join(__dirname, 'TestSetup.js');
5164
const tr: ttm.MockTestRunner = new ttm.MockTestRunner(tp);

Tasks/KubernetesManifestV1/Tests/TestSetup.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ tr.setInput('dockerComposeFile', process.env[shared.TestEnvVars.dockerComposeFil
4949
tr.setInput('kustomizationPath', process.env[shared.TestEnvVars.kustomizationPath] || '');
5050
tr.setInput('baselineAndCanaryReplicas', process.env[shared.TestEnvVars.baselineAndCanaryReplicas] || '0');
5151
tr.setInput('trafficSplitMethod', process.env[shared.TestEnvVars.trafficSplitMethod]);
52+
tr.setInput('resourceType', process.env[shared.TestEnvVars.resourceType] || '');
5253

5354
process.env.SYSTEM_DEFAULTWORKINGDIRECTORY = testnamespaceWorkingDirectory;
5455
process.env.SYSTEM_TEAMFOUNDATIONCOLLECTIONURI = teamFoundationCollectionUri;

Tasks/KubernetesManifestV1/Tests/TestShared.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ export let TestEnvVars = {
3737
isCanaryDeploymentPresent: "__isCanaryDeploymentPresent__",
3838
isBaselineDeploymentPresent: "__isBaselineDeploymentPresent__",
3939
baselineAndCanaryReplicas: "__baselineAndCanaryReplicas__",
40-
trafficSplitMethod: "__trafficSplitMethod__"
40+
trafficSplitMethod: "__trafficSplitMethod__",
41+
resourceType: "__resourceType__"
4142
};
4243

4344
export let OperatingSystems = {

Tasks/KubernetesManifestV1/package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Tasks/KubernetesManifestV1/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"@types/uuid": "^8.3.0",
99
"agent-base": "^6.0.2",
1010
"azure-pipelines-task-lib": "^4.11.0",
11-
"azure-pipelines-tasks-azure-arm-rest": "3.254.0",
11+
"azure-pipelines-tasks-azure-arm-rest": "3.254.2",
1212
"azure-pipelines-tasks-docker-common": "2.242.0",
1313
"azure-pipelines-tasks-kubernetes-common": "^2.224.1",
1414
"azure-pipelines-tasks-utility-common": "^3.210.0",

Tasks/KubernetesManifestV1/src/utils/DeploymentHelper.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,13 @@ export async function deploy(kubectl: Kubectl, manifestFilePaths: string[], depl
3434

3535
// check manifest stability
3636
const resourceTypes: Resource[] = KubernetesObjectUtility.getResources(deployedManifestFiles, models.deploymentTypes.concat([KubernetesConstants.DiscoveryAndLoadBalancerResource.service]));
37-
await checkManifestStability(kubectl, resourceTypes);
37+
const resourceType = tl.getInput('resourceType') || ''
38+
39+
// for a fleet object, we do not check for manifest stability
40+
if (resourceType.toLowerCase() != 'microsoft.containerservice/fleets') {
41+
tl.debug('checking manifest stability');
42+
await checkManifestStability(kubectl, resourceTypes)
43+
}
3844

3945
// print ingress resources
4046
const ingressResources: Resource[] = KubernetesObjectUtility.getResources(deployedManifestFiles, [KubernetesConstants.DiscoveryAndLoadBalancerResource.ingress]);

Tasks/KubernetesManifestV1/task.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"version": {
1515
"Major": 1,
1616
"Minor": 255,
17-
"Patch": 0
17+
"Patch": 2
1818
},
1919
"demands": [],
2020
"groups": [],

Tasks/KubernetesManifestV1/task.loc.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"version": {
1515
"Major": 1,
1616
"Minor": 255,
17-
"Patch": 0
17+
"Patch": 2
1818
},
1919
"demands": [],
2020
"groups": [],

0 commit comments

Comments
 (0)