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.