Analysis Config
Declare the queries used to analyze a deployment for any analysis steps in your deployment strategies. Includes defaultMetricProviderName and queries (name, upperLimit, lowerLimit, queryTemplate).
Expand to see a skeleton config file for a deployment to AWS Lambda. All all config options are listed for each section.
---
version: v1
kind: lambda
application: <application-name>
targets:
  <targetName>:
    account: <account-name>
    region: <aws-region>
    deployAsIamRole: <Armory-Role-arn>
    strategy: <strategy-name>
    constraints:
      dependsOn:
        - <target-name>
        - <target-name>
artifacts:
  - functionName: <function-name>
    path: <path-to-function>  # S3 bucket
    type: zipFile
providerOptions:
  lambda:
    - handler: <function-handler>  # typically index.handler
      name: <function-name>
      runAsIamRole: <lambda-execution-role>
      runtime: <function-runtime>  # nodejs18.x, Python, etc
      target: <target-name>
strategies:
  <strategy-name>:
    canary:
      steps:
        - pause:
            duration: <integer>
            unit: <seconds|minutes|hours>
        - setWeight:
            weight: 100
        - runWebhook:
            name: <webhook-name>
trafficManagement:
  - targets: ["<target-name>"]
    alias:
      - functionName: <function-name>
        aliasName: <alias-name>
analysis:
  defaultMetricProviderName: <provider-name>
  queries:
    - name: <query-name>
      upperLimit: <integer>
      lowerLimit: <integer>
      queryTemplate: >-
                <query>
webhooks:
  - name: <webhook-name>
    method: <endpoint-method-type>
    uriTemplate: <endpoint-uri>
    networkMode: <network-mode>
    agentIdentifier: <remote-network-agent-id>
    headers:
      - key: Authorization
        value: <auth-type-and-value>
      - key: Content-Type
        value: application/json
    bodyTemplate:
      inline: >-
        {
          "event_type": "<event-type>",
          "client_payload": {
            "callbackUri": "{{armory.callbackUri}}/callback"
            }
        }        
    retryCount: <num-retries>
deploymentConfig:
  timeout:
    unit: <seconds|minutes|hours>
    duration: <integer>
Expand to see a skeleton config file for a deployment to Kubernetes. All all config options are listed for each section.
---
version: v1
kind: kubernetes
application: <application-name>
targets:
  <targetName>:
    account: <account-name>
    namespace: <namespace-override>
    strategy: <strategy-name>
    constraints:
      dependsOn: ["<target-name>", "<target-name>"]
      beforeDeployment:
        - pause:
            untilApproved: true
            requiresRoles:
              - <role-name>
            approvalExpiration:
              duration: <integer>
              unit: <seconds|minutes|hours>
        - pause:
            duration: <integer>
            unit: <seconds|minutes|hours>
        - runWebhook:
            name: <webhook-name>
        - analysis:
            metricProviderName: <metric-provider-name>
            context:
              keyName: <value>
            interval: <integer>
            units: <seconds|minutes|hours>
            numberOfJudgmentRuns: <integer>
            rollBackMode: <manual|automatic>
            rollForwardMode: <manual|automatic>
            queries:
              - <queryName1>
              - <queryName2>
      afterDeployment:
        - pause:
            untilApproved: true
            requiresRoles:
              - <role-name>
            approvalExpiration:
              duration: <integer>
              unit: <seconds|minutes|hours>
        - pause:
            duration: <integer>
            unit: <seconds|minutes|hours>
        - runWebhook:
            name: <webhook-name>
        - analysis:
            metricProviderName: <metric-provider-name>
            context:
              keyName: <value>
            interval: <integer>
            units: <seconds|minutes|hours>
            numberOfJudgmentRuns: <integer>
            rollBackMode: <manual|automatic>
            rollForwardMode: <manual|automatic>
            queries:
              - <queryName1>
              - <queryName2>
manifests:
  - path: <path-to-manifest-or-directory>
  - path: <path-to-manifest-or-directory>
    targets:
      - <target-name>
strategies:
  myCanary:
    canary:
      steps:
        - setWeight:
            weight: <integer>
        - analysis:
            metricProviderName: <metric-provider-name>
            context:
              keyName1: <value>
              keyName2: <value>
            interval: <integer>
            units: <seconds|minutes|hours>
            numberOfJudgmentRuns: <integer>
            rollBackMode: <manual|automatic>
            rollForwardMode: <manual|automatic>
            queries:
              - <queryName1>
              - <queryName2>
        - runWebhook:
            name: <webhook-name>
        - pause:
            duration: <integer>
            unit: <seconds|minutes|hours>
        - setWeight:
            weight: <integer>
        - exposeServices:
            services:
              - <service-1>
              - <service-2>
              - <service-n>
            ttl:
              duration: <integer>
              unit: <seconds|minutes|hours>
        - analysis:
            metricProviderName: <metric-provider-name>
            context:
              keyName1: <value>
              keyName2: <value>
            interval: <integer>
            units: <seconds|minutes|hours>
            numberOfJudgmentRuns: <integer>
            rollBackMode: <manual|automatic>
            rollForwardMode: <manual|automatic>
            queries:
              - <queryName1>
              - <queryName2>
        - pause:
            untilApproved: true
            requiresRoles:
              - <role-name>
            approvalExpiration:
              duration: <integer>
              unit: <seconds|minutes|hours>
        - setWeight:
            weight: <integer>
  myBlueGreen:
    blueGreen:
      activeService: <active-service-name>
      previewService: <preview-service-name>
      redirectTrafficAfter:
        - runWebhook:
            name: CheckLogs
        - analysis:
            metricProviderName: <metric-provider-name>
            context:
              keyName1: <value>
              keyName2: <value>
            interval: <integer>
            units: <seconds|minutes|hours>
            numberOfJudgmentRuns: <integer>
            rollBackMode: <manual|automatic>
            rollForwardMode: <manual|automatic>
            queries:
              - <queryName1>
              - <queryName2>
        - pause:
            duration: <integer>
            unit: <seconds|minutes|hours>
        - exposeServices:
            services:
              - <service-1>
              - <service-2>
              - <service-n>
            ttl:
              duration: <integer>
              unit: <seconds|minutes|hours>
      shutDownOldVersionAfter:
        - pause:
            untilApproved: true
            approvalExpiration:
              duration: <integer>
              unit: <seconds|minutes|hours>
              requiresRoles:
                - <role-name>
        - pause:
            duration: <integer>
            unit: <seconds|minutes|hours>
        - analysis:
            metricProviderName: <metric-provider-name>
            context:
              keyName1: <value>
              keyName2: <value>
            interval: <integer>
            units: <seconds|minutes|hours>
            numberOfJudgmentRuns: <integer>
            rollBackMode: <manual|automatic>
            rollForwardMode: <manual|automatic>
            queries:
              - <queryName>
analysis:
  defaultMetricProviderName: <provider-name>
  queries:
    - name: <query-name>
      upperLimit: <integer>
      lowerLimit: <integer>
      queryTemplate: >-
                <query>
webhooks:
  - name: <webhook-name>
    method: <endpoint-method-type>
    uriTemplate: <endpoint-uri>
    networkMode: <network-mode>
    agentIdentifier: <remote-network-agent-id>
    headers:
      - key: Authorization
        value: <auth-type-and-value>
      - key: Content-Type
        value: application/json
    bodyTemplate:
      inline: >-
        {
          "event_type": "<event-type>",
          "client_payload": {
            "callbackUri": "{{armory.callbackUri}}/callback"
            }
        }        
    retryCount: <num-retries>
deploymentConfig:
  keepDeploymentObject: <true|false>
  timeout:
    unit: <seconds|minutes|hours>
    duration: <integer>
Declare the queries used to analyze a deployment for any analysis steps in your deployment strategies. Includes defaultMetricProviderName and queries (name, upperLimit, lowerLimit, queryTemplate).
Declare your app name and specify whether the deployment is to Kubernetes or AWS Lambda.
Declare your AWS Lambda artifacts (functionName, path, type) and provider options.
Customize your CD-as-a-Service deployment’s behavior deployment timeout and keepDeploymentObject settings.
Declare the path to the Kubernetes manifests to use for your deployment. You can deploy a manifest to all targets or declare specific targets per manifest.
Declare your deployment strategies. You can use blue/green, canary, or both. Restrict by target environment. Add steps such as weight, manual or timed pauses, analysis, expose services, redirect traffic, and shut down old version.
Declare your Kubernetes or AWS Lambda deployment targets.
Declare AWS Lambda aliases. Declare Istio or Linkerd traffic management for all or specific Kubernetes targets. Configure Istio settings such as virtual service and destination rule. Configure Linkerd settings like root service, canary service, active service, and traffic split.
Declare webhooks that call external automation for webhook-based approvals in your strategies.
Was this page helpful?
Thank you for letting us know!
Sorry to hear that. Please tell us how we can improve.