spinnaker.execution.stages.before.scaleDownCluster
A policy targeting this object runs before executing each task in a Scale Down Cluster stage.
Example Payload
Click to expand
{
"input": {
"pipeline": {
"application": "test",
"authentication": {
"allowedAccounts": [
"spinnaker",
"staging",
"staging-ecs"
],
"user": "myUserName"
},
"buildTime": 1620926703486,
"canceled": false,
"canceledBy": null,
"cancellationReason": null,
"description": null,
"endTime": 1620926705283,
"id": "01F5KC59TRGWKCP31C4N51CDSB",
"initialConfig": {},
"keepWaitingPipelines": false,
"limitConcurrent": true,
"name": "test",
"notifications": [],
"origin": "api",
"partition": null,
"paused": null,
"pipelineConfigId": "6a4cff2e-8265-4584-8993-2da2eb6254f5",
"source": null,
"spelEvaluator": "v4",
"stages": [],
"startTime": 1620926703525,
"startTimeExpiry": null,
"status": "TERMINAL",
"systemNotifications": [],
"templateVariables": null,
"trigger": {
"artifacts": [
{
"artifactAccount": "myUserName",
"customKind": false,
"location": null,
"metadata": {
"id": "d14e7e5b-247c-455d-8260-9e9b0a3ae936"
},
"name": "manifests/deploy-spinnaker.yaml",
"provenance": null,
"reference": "Https://api.github.com/repos/myUserName/hostname/contents/manifests/deploy-spinnaker.yaml",
"type": "github/file",
"uuid": null,
"version": "master"
}
],
"correlationId": null,
"isDryRun": false,
"isRebake": false,
"isStrategy": false,
"notifications": [],
"other": {
"artifacts": [
{
"artifactAccount": "myUserName",
"customKind": false,
"metadata": {
"id": "d14e7e5b-247c-455d-8260-9e9b0a3ae936"
},
"name": "manifests/deploy-spinnaker.yaml",
"reference": "Https://api.github.com/repos/myUserName/hostname/contents/manifests/deploy-spinnaker.yaml",
"type": "github/file",
"version": "master"
}
],
"dryRun": false,
"enabled": false,
"eventId": "c1090782-f485-490e-a2d7-31763b3bd4d8",
"executionId": "01F5KC59TRGWKCP31C4N51CDSB",
"expectedArtifacts": [
{
"boundArtifact": {
"artifactAccount": "myUserName",
"customKind": false,
"metadata": {
"id": "d14e7e5b-247c-455d-8260-9e9b0a3ae936"
},
"name": "manifests/deploy-spinnaker.yaml",
"reference": "Https://api.github.com/repos/myUserName/hostname/contents/manifests/deploy-spinnaker.yaml",
"type": "github/file",
"version": "master"
},
"defaultArtifact": {
"artifactAccount": "myUserName",
"customKind": false,
"metadata": {
"id": "d14e7e5b-247c-455d-8260-9e9b0a3ae936"
},
"name": "manifests/deploy-spinnaker.yaml",
"reference": "Https://api.github.com/repos/myUserName/hostname/contents/manifests/deploy-spinnaker.yaml",
"type": "github/file",
"version": "master"
},
"id": "05ad020e-73a6-49f2-9988-2073831219e9",
"matchArtifact": {
"artifactAccount": "myUserName",
"customKind": true,
"metadata": {
"id": "f7a9b229-0a23-42ab-82de-9990d77084df"
},
"name": "manifests/deploy-spinnaker.yaml",
"type": "github/file"
},
"useDefaultArtifact": true,
"usePriorArtifact": false
}
],
"notifications": [],
"parameters": {},
"preferred": false,
"rebake": false,
"resolvedExpectedArtifacts": [
{
"boundArtifact": {
"artifactAccount": "myUserName",
"customKind": false,
"metadata": {
"id": "d14e7e5b-247c-455d-8260-9e9b0a3ae936"
},
"name": "manifests/deploy-spinnaker.yaml",
"reference": "Https://api.github.com/repos/myUserName/hostname/contents/manifests/deploy-spinnaker.yaml",
"type": "github/file",
"version": "master"
},
"defaultArtifact": {
"artifactAccount": "myUserName",
"customKind": false,
"metadata": {
"id": "d14e7e5b-247c-455d-8260-9e9b0a3ae936"
},
"name": "manifests/deploy-spinnaker.yaml",
"reference": "Https://api.github.com/repos/myUserName/hostname/contents/manifests/deploy-spinnaker.yaml",
"type": "github/file",
"version": "master"
},
"id": "05ad020e-73a6-49f2-9988-2073831219e9",
"matchArtifact": {
"artifactAccount": "myUserName",
"customKind": true,
"metadata": {
"id": "f7a9b229-0a23-42ab-82de-9990d77084df"
},
"name": "manifests/deploy-spinnaker.yaml",
"type": "github/file"
},
"useDefaultArtifact": true,
"usePriorArtifact": false
}
],
"strategy": false,
"type": "manual",
"user": "myUserName"
},
"parameters": {},
"resolvedExpectedArtifacts": [
{
"boundArtifact": {
"artifactAccount": "myUserName",
"customKind": false,
"location": null,
"metadata": {
"id": "d14e7e5b-247c-455d-8260-9e9b0a3ae936"
},
"name": "manifests/deploy-spinnaker.yaml",
"provenance": null,
"reference": "Https://api.github.com/repos/myUserName/hostname/contents/manifests/deploy-spinnaker.yaml",
"type": "github/file",
"uuid": null,
"version": "master"
},
"defaultArtifact": {
"artifactAccount": "myUserName",
"customKind": false,
"location": null,
"metadata": {
"id": "d14e7e5b-247c-455d-8260-9e9b0a3ae936"
},
"name": "manifests/deploy-spinnaker.yaml",
"provenance": null,
"reference": "Https://api.github.com/repos/myUserName/hostname/contents/manifests/deploy-spinnaker.yaml",
"type": "github/file",
"uuid": null,
"version": "master"
},
"id": "05ad020e-73a6-49f2-9988-2073831219e9",
"matchArtifact": {
"artifactAccount": "myUserName",
"customKind": true,
"location": null,
"metadata": {
"id": "f7a9b229-0a23-42ab-82de-9990d77084df"
},
"name": "manifests/deploy-spinnaker.yaml",
"provenance": null,
"reference": null,
"type": "github/file",
"uuid": null,
"version": null
},
"useDefaultArtifact": true,
"usePriorArtifact": false
}
],
"type": "manual",
"user": "myUserName"
},
"type": "PIPELINE"
},
"stage": {
"context": {
"allowScaleDownActive": false,
"cloudProvider": "aws",
"cloudProviderType": "aws",
"cluster": "TEST",
"credentials": "staging",
"interestingHealthProviderNames": [
"Amazon"
],
"preferLargerOverNewer": "false",
"regions": [
"us-east-2"
],
"remainingFullSizeServerGroups": 1
},
"endTime": null,
"id": "01F5KC59VX4WM95WVQG3P8FPGK",
"lastModified": null,
"name": "Scale Down Cluster",
"outputs": {},
"parentStageId": null,
"refId": "36",
"requisiteStageRefIds": [],
"scheduledTime": null,
"startTime": 1620926703895,
"startTimeExpiry": null,
"status": "RUNNING",
"syntheticStageOwner": null,
"tasks": [
{
"endTime": 1620926706325,
"id": "1",
"implementingClass": "com.netflix.spinnaker.orca.clouddriver.tasks.DetermineHealthProvidersTask",
"loopEnd": false,
"loopStart": false,
"name": "determineHealthProviders",
"stageEnd": false,
"stageStart": true,
"startTime": 1620926704294,
"status": "SUCCEEDED"
},
{
"endTime": null,
"id": "2",
"implementingClass": "com.netflix.spinnaker.orca.clouddriver.tasks.cluster.ScaleDownClusterTask",
"loopEnd": false,
"loopStart": false,
"name": "scaleDownCluster",
"stageEnd": false,
"stageStart": false,
"startTime": 1620926706627,
"status": "RUNNING"
},
{
"endTime": null,
"id": "3",
"implementingClass": "com.netflix.spinnaker.orca.clouddriver.tasks.MonitorKatoTask",
"loopEnd": false,
"loopStart": false,
"name": "monitorScaleDownCluster",
"stageEnd": false,
"stageStart": false,
"startTime": null,
"status": "NOT_STARTED"
},
{
"endTime": null,
"id": "4",
"implementingClass": "com.netflix.spinnaker.orca.clouddriver.tasks.servergroup.ServerGroupCacheForceRefreshTask",
"loopEnd": false,
"loopStart": false,
"name": "forceCacheRefresh",
"stageEnd": false,
"stageStart": false,
"startTime": null,
"status": "NOT_STARTED"
},
{
"endTime": null,
"id": "5",
"implementingClass": "com.netflix.spinnaker.orca.clouddriver.tasks.cluster.WaitForScaleDownClusterTask",
"loopEnd": false,
"loopStart": false,
"name": "waitForScaleDownCluster",
"stageEnd": false,
"stageStart": false,
"startTime": null,
"status": "NOT_STARTED"
},
{
"endTime": null,
"id": "6",
"implementingClass": "com.netflix.spinnaker.orca.clouddriver.tasks.servergroup.ServerGroupCacheForceRefreshTask",
"loopEnd": false,
"loopStart": false,
"name": "forceCacheRefresh",
"stageEnd": true,
"stageStart": false,
"startTime": null,
"status": "NOT_STARTED"
}
],
"type": "scaleDownCluster"
},
"user": {
"isAdmin": false,
"roles": [],
"username": "myUserName"
}
}
}
Keys
Key | Type | Description |
---|---|---|
input.pipeline.application |
string |
The name of the application to which this pipeline belongs. |
input.pipeline.authentication.allowedAccounts[] |
string |
The list of accounts to which the user this stage runs as has access. |
input.pipeline.authentication.user |
string |
The Spinnaker user initiating the change. |
input.pipeline.buildTime |
number |
|
input.pipeline.canceledBy |
||
input.pipeline.canceled |
boolean |
|
input.pipeline.cancellationReason |
||
input.pipeline.description |
string |
Description of the pipeline defined in the UI. |
input.pipeline.endTime |
||
input.pipeline.endTime |
number |
|
input.pipeline.id |
string |
The unique ID of the pipeline. |
input.pipeline.keepWaitingPipelines |
boolean |
If concurrent pipeline execution is disabled, then the pipelines that are in the waiting queue will get canceled when the next execution starts unless this is true. |
input.pipeline.limitConcurrent |
boolean |
True if only 1 concurrent execution of this pipeline is allowed. |
input.pipeline.name |
string |
The name of this pipeline. |
input.pipeline.origin |
string |
|
input.pipeline.partition |
||
input.pipeline.paused |
||
input.pipeline.pipelineConfigId |
string |
|
input.pipeline.source |
||
input.pipeline.spelEvaluator |
string |
Which version of spring expression language is being used to evaluate SpEL. |
input.pipeline.stages[] |
string |
An array of the stages in the pipeline. Typically if you are writing a policy that examines multiple pipeline stages, it is better to write that policy against either the opa.pipelines package, or the spinnaker.execution.pipelines.before package . |
input.pipeline.startTime |
number |
Timestamp from when the pipeline was started. |
input.pipeline.startTimeExpiry |
date |
Unix epoch date at which the pipeline expires. |
input.pipeline.status |
string |
The status of the pipeline, typically ‘RUNNING’. |
input.pipeline.templateVariables |
||
input.pipeline.type |
string |
input.stage.context
Key | Type | Description |
---|---|---|
input.stage.context.allowScaleDownActive |
boolean |
|
input.stage.context.cloudProvider |
string |
|
input.stage.context.cloudProviderType |
string |
|
input.stage.context.cluster |
string |
|
input.stage.context.credentials |
string |
|
input.stage.context.interestingHealthProviderNames[] |
string |
input.pipeline.trigger
See input.pipeline.trigger for more information.
input.stage
See input.stage
for more information.
input.stage.context
Key | Type | Description |
---|---|---|
input.stage.context.allowScaleDownActive |
boolean |
Should scaling down of active server groups be allowed. |
input.stage.context.cloudProvider |
string |
The name of the cloud provider for the server group. |
input.stage.context.cloudProviderType |
string |
The type of the cloud provider for the server group. |
input.stage.context.cluster |
string |
The cluster to look at when selecting the image to use in this pipeline. |
input.stage.context.credentials |
string |
The specific account / credential set to use. |
input.stage.context.interestingHealthProviderNames[] |
string |
|
input.stage.context.preferLargerOverNewer |
string |
“true” or “false”: should ’larger’ servers, or ’newer’ instances be preferred to be left online. |
input.stage.context.regions[] |
string |
What regions should be scaled. |
input.stage.context.remainingFullSizeServerGroups |
number |
How many server groups should be running after the stage completes. |
input.user
This object provides information about the user performing the action. This can be used to restrict actions by role. See input.user for more information.
Feedback
Was this page helpful?
Thank you for letting us know!
Sorry to hear that. Please tell us how we can improve.
Last modified March 3, 2023: (2d069084)