Create scenario
    • PDF

    Create scenario

    • PDF

    Article summary

    Overview

    Create a scenario of the SourceDeploy project.

    Requests

    API URL

    POST 	{SOURCEDEPLOY_API_URL}/project/{projectId}/stage/{stageId}/scenario
    

    Request parameters

    ItemTypeDescriptionNote
    projectIdstringProject IDView projectList
    stageIdstringstage IDView stageList

    Request queries

    None

    Request bodies

    {
        "name": "string",
        "description": "string",
        "config": "TScenarioServer" | "TScenarioAutoScalingGroup" | "TSecnarioKubernetesService" | "TSecnarioObjectStorage"
    }
    
    ItemTypeRequiredDescriptionNote
    namestringYScenario name
    descriptionstringNScenario description
    ConfigTScenarioServer | TScenarioAutoScalingGroup| TSecnarioKubernetesService|TSecnarioObjectStorageYScenario settingsView stage type with stageDetail API
    When stage type="Server," TScenarioServer
    When stage type="AutoScalingGroup," TScenarioAutoScalingGroup
    When stage type="KubernetesService," TScenarioKubernetesService
    When stage type="ObjectStorage," TScenarioObjectStorage

    TScenarioServer

    {
        "strategy": "string",
        "sequence": "boolean",
        "file": {
            "type": "string",
            "ObjectStorage": {
                "bucket": "string",
                "object": "string"
            },
            "SourceBuild": {
                "id": "number"
            }
        },
        "rollback": "boolean",
        "cmd": {
            "pre": [
                {
                    "user": "string",
                    "cmd": "string"
                }
            ],
            "deploy": [
                {
                    "sourcePath": "string",
                    "deployPath": "string"
                }
            ],
            "post": [
                {
                    "user": "string",
                    "cmd": "string"
                }
            ]
        },
    }
    
    ItemTypeRequiredDefaultDescriptionNote
    strategystringYDeployment strategy"normal"
    sequencebooleanNtrueConsecutive deployment statusWhen false is entered, deployed simultaneously
    file.typestringYDeployment file type"ObjectStorage" | "SourceBuild" | "later"
    file.ObjectStorage.bucketstringN
    (When file.type=ObjectStorage, required)
    ObjectStorage bucket nameView with objectStorageBucketList API
    file.ObjectStorage.objectstringN
    (When file.type=ObjectStorage, required)
    ObjectStorage object locationView with objectstorageobjectlist API
    file.SourceBuild.idnumberN
    (When file.type=SourceBuild, required)
    SourceBuild idView with sourceBuildList API
    rollbackbooleanYRoll back if deployment fails
    cmd.pre.userstringNRun before deployment>Account
    cmd.pre.cmdstringNRun before deployment>Command
    cmd.deploy.sourcePathstringNFile deployment>Source file path
    cmd.deploy.deployPathstringNFile deployment>Deployment path
    cmd.post.userstringNRun after deployment>Account
    cmd.post.cmdstringNRun after deployment>Command

    TScenarioAutoScalingGroup

    {
        "strategy": "string",
        "sequence": "boolean",
        "file": {
            "type": "string",
            "ObjectStorage": {
                "bucket": "string",
                "object": "string"
            },
            "SourceBuild": {
                "id": "number"
             }
        },
        "rollback": "boolean",
        "cmd": {
            "pre": [
                {
                    "user": "string",
                    "cmd": "string"
                }
            ],
            "deploy": [
                {
                    "sourcePath": "string",
                    "deployPath": "string"
                }
            ],
            "post": [
                {
                    "user": "string",
                    "cmd": "string"
                }
            ]
        },
        "loadBalancer": {
            "loadBalancerTargetGroupNo": "number",
            "deleteAsg": "boolean",
            "deleteServer": "boolean"
        }
    }
    
    ItemTypeRequiredDefaultDescriptionNote
    strategystringYDeployment strategy"normal" | "blueGreen"
    sequencebooleanNtrueConsecutive deployment statusWhen false is entered, deployed simultaneously
    file.typestringYDeployment file type"ObjectStorage" | "SourceBuild" | "later"
    file.ObjectStorage.bucketstringN
    (When file.type=ObjectStorage, required)
    ObjectStorage bucket nameView with objectStorageBucketList API
    file.ObjectStorage.objectstringN
    (When file.type=ObjectStorage, required)
    ObjectStorage object locationView with objectstorageobjectlist API
    file.SourceBuild.idnumberN
    (When file.type=SourceBuild, required)
    SourceBuild idView with sourceBuildList API
    rollbackbooleanYRoll back if deployment fails
    cmd.pre.userstringNRun before deployment>Account
    cmd.pre.cmdstringNRun before deployment>Command
    cmd.deploy.sourcePathstringNFile deployment>Source file path
    cmd.deploy.deployPathstringNFile deployment>Deployment path
    cmd.post.userstringNRun after deployment>Account
    cmd.post.cmdstringNRun after deployment>Command
    loadBalancer.loadBalancerTargetGroupNonumberN
    (When strategy=blueGreen, required)
    Load Balancer target group numberView with targetGroupList API
    loadBalancer.deleteAsgbooleanN
    (When strategy=blueGreen, optional)
    falseExisting Auto Scaling Group deletion status
    loadBalancer.deleteServerbooleanN
    (When strategy=blueGreen, required)
    Deletion status of server in the existing Auto Scaling GroupWhen loadBalancer.deleteAsg value is true, only true can be entered

    TSecnarioKubernetesService

    {	
     {
     
        "manifest": {
            "type": "string",
            "repository": "string",
            "branch": "string",
            "path": ["string"]
        },
        "strategy": "string",
        "canaryConfig": {
            "canaryCount": "number",
            "analysisType": "string",
            "timeout": "number",
            "prometheus": "string",
            "env": {
                "baseline": "string",
                "canary": "string"
            },
            "metrics": [
                {
                    "name": "string",
                    "successCriteria": "string",
                    "queryType": "string",
                    "weight": "number",
                    "metric": "string",
                    "filter": "string",
                    "query": "string"
                }
            ],
            "analysisConfig": {
                "duration": "number",
                "delay": "number",
                "interval": "number",
                "step": "number"
            },
            "passScore": "number"
        }
    }
    
    ItemTypeRequiredDescriptionNote
    strategystringYDeployment strategy"rolling" | "blueGreen" | "canary"
    manifest.typestringYManifest file repository"SourceCommit"
    manifest.repositorystringYRepositoryView with sourceCommitRepositoryList API
    manifest.branchstringYRepository branchView with sourceCommitBranchList API
    manifest.pathstring[]YFile location
    canaryConfig.analysisTypestringN
    (When strategy=canary, required)
    Canary analysis method"manual" | "auto"
    canaryConfig.timeoutnumberN
    (strategy=canary &
    When canaryConfig.analysisType=manual, required)
    Maximum time of deployment/cancellation
    canaryConfig.canaryCountnumberN
    (When canaryConfig.analysisType=auto, required)
    Number of baselines and canary pods
    canaryConfig.prometheusstringN
    (When strategy=canary & canaryConfig.analysisType=auto, required)
    Prometheus Url
    canaryConfig.env.baselinestringN
    (When strategy=canary & canaryConfig.analysisType=auto, required)
    Analysis environment variable > baseline
    canaryConfig.env.canarystringN
    (When strategy=canary & canaryConfig.analysisType=auto, required)
    Analysis environment variable > canary
    canaryConfig.metrics.namestringN
    (When strategy=canary & canaryConfig.analysisType=auto, required)
    Metric name
    canaryConfig.metrics.successCriteriastringN
    (When strategy=canary & canaryConfig.analysisType=auto, required)
    Succeeded criteria"base" | "canary"
    canaryConfig.metrics.queryTypestringN
    (When strategy=canary & canaryConfig.analysisType=auto, required)
    Query type"default" | "promQL"
    canaryConfig.metrics.weightnumberN
    (When strategy=canary & canaryConfig.analysisType=auto, required)
    Weight
    canaryConfig.metrics.metricstringN
    (When strategy=canary & canaryConfig.analysisType=auto & canaryConfig.metrics.queryType="default," required)
    Metric
    canaryConfig.metrics.filterstringN
    (When strategy=canary & canaryConfig.analysisType=auto & canaryConfig.metrics.queryType="default," required)
    Filter
    canaryConfig.metrics.querystringN
    (When strategy=canary & canaryConfig.analysisType=auto & canaryConfig.metrics.queryType="promQL," required)
    Query
    canaryConfig.analysisConfig.durationnumberN
    (When strategy=canary & canaryConfig.analysisType=auto, required)
    Analysis time
    canaryConfig.analysisConfig.delaynumberN
    (When strategy=canary & canaryConfig.analysisType=auto, required)
    Analysis delay time
    canaryConfig.analysisConfig.intervalnumberN
    (When strategy=canary & canaryConfig.analysisType=auto, required)
    Analysis cycle
    canaryConfig.analysisConfig.stepnumberN
    (When strategy=canary & canaryConfig.analysisType=auto, required)
    Metric collection cycle
    canaryConfig.passScorenumberN
    (When strategy=canary & canaryConfig.analysisType=auto, required)
    Analysis success score

    TSecnarioObjectStorage

    {
        "file": {
            "type": "string",
            "ObjectStorage": {
                "bucket": "string",
                "object": "string"
            },
            "SourceBuild": {
                "id": "number"
            }
        },
        "path": [
                {
                    "sourcePath": "string",
                    "deployPath": "string"
                }
        ]
    }
    
    ItemTypeRequiredDescriptionNote
    file.typestringYDeployment file type"ObjectStorage" | "SourceBuild" | "later"
    file.ObjectStorage.bucketstringN
    (When file.type=ObjectStorage, required)
    ObjectStorage bucket nameView with objectStorageBucketList API
    file.ObjectStorage.objectstringN
    (When file.type=ObjectStorage, required)
    ObjectStorage object locationView with objectstorageobjectlist API
    file.SourceBuild.idnumberN
    (When file.type=SourceBuild, required)
    SourceBuild idView with sourceBuildList API
    path.sourcePathstringNSource file path
    path.deployPathstringNDeployment path

    Responses

    Response bodies

    {
    	"id": "number",
    	"name": "string"
    }
    
    ItemTypeDescriptionNote
    idnumberScenario ID
    namestringScenario name

    Was this article helpful?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.