From 803ecce8260e5db123325590138d4917cafb33b2 Mon Sep 17 00:00:00 2001 From: aimee Date: Mon, 27 Nov 2023 16:26:28 -0600 Subject: [PATCH] docs(lambda): Add Lambda content (#92) * docs(lambda): Add Lambda content CDAAS-2609 * add skeleton lambda deploy config file * stub lambda overview; troubleshoot page * update account to be user-supplied name * get started - add buckets * add second deployment with manual judgment and screenshots * add screenshots for deployed function list and test function * bit more content to lambda quickstart * finish targets * finish create lambda config part of create deploy config page * add more **Kubernetes Only** * change quickstart manual approval to afterDeployment staging node * address stephen's text feedback * move k8s overview to k8s folder; move create iam role to lambda folder * nits * add traffic management for traffic split * fix typo * revert get started to before traffic split content * stephen feedback * fixed a dangling sentence * remove k8s sentence in lambda overview; fix typos * change trafficManagement.alias.function to functionName * fixed a few typos and expanded a bit on get started * reorder sections in sample yaml * move aws lambda first in tab panes * fix internal link in lambda get started * make sure AWS Lambda is always first; added clarification * remove architecture link from lambda get started architeture page is all k8s --- content/en/_index.md | 6 +- content/en/deployment/create-deploy-config.md | 24 +- content/en/deployment/kubernetes/_index.md | 7 +- .../overview/deploy-overview.jpg | Bin .../{ => kubernetes}/overview/index.md | 20 +- content/en/deployment/lambda/_index.md | 16 +- .../lambda/create-iam-role-lambda.md | 17 + .../en/deployment/lambda/overview/index.md | 295 ++++++++++++++ .../lambda/overview/lambda-deploy.webp | Bin 0 -> 17496 bytes content/en/deployment/strategies/_index.md | 2 +- .../en/deployment/strategies/blue-green.md | 5 +- content/en/deployment/strategies/canary.md | 65 +++- content/en/deployment/strategies/overview.md | 11 +- content/en/get-started/deploy-your-app.md | 4 +- .../get-started/deploy-your-own-function.md | 11 + .../en/get-started/lambda/deploy-details.webp | Bin 0 -> 52376 bytes .../lambda/deployed-function-list.webp | Bin 0 -> 56474 bytes .../lambda/files/just-sweet-potatoes.zip | Bin 0 -> 943 bytes .../en/get-started/lambda/function-test.webp | Bin 0 -> 118296 bytes content/en/get-started/lambda/index.md | 361 +++++++++++++++++ .../get-started/lambda/manual-constraint.webp | Bin 0 -> 58356 bytes content/en/get-started/lambda/s3-buckets.webp | Bin 0 -> 25444 bytes content/en/get-started/overview.md | 21 +- content/en/get-started/quickstart/index.md | 6 +- .../k8s-skeleton.yaml} | 0 content/en/includes/code/lambda-skeleton.yaml | 73 ++++ .../code/lambda-traffic-split-snippet.yaml | 49 +++ ...{create-config.md => create-k8s-config.md} | 0 content/en/includes/create-lambda-config.md | 56 +++ ...leton-config.md => k8s-skeleton-config.md} | 2 +- .../dep-file/lambda-provider-options.md | 5 + .../dep-file/lambda-skeleton-config.md | 6 + content/en/includes/lambda/iam-role-steps.md | 12 + content/en/includes/lambda/iam-role.md | 1 + .../includes/overview-target-constraints.md | 7 + .../en/integrations/ci-systems/gh-action.md | 2 +- content/en/reference/deployment/_index.md | 22 +- .../deployment/config-file/_index.md | 17 +- .../deployment/config-file/application.md | 14 +- .../deployment/config-file/artifacts.md | 250 ++++++++++++ .../deployment/config-file/manifests.md | 4 +- .../deployment/config-file/strategies.md | 2 + .../deployment/config-file/targets.md | 362 ++++++++++++++++-- .../config-file/traffic-management.md | 21 +- content/en/troubleshooting/lambda.md | 86 +++++ 45 files changed, 1737 insertions(+), 125 deletions(-) rename content/en/deployment/{ => kubernetes}/overview/deploy-overview.jpg (100%) rename content/en/deployment/{ => kubernetes}/overview/index.md (89%) create mode 100644 content/en/deployment/lambda/create-iam-role-lambda.md create mode 100644 content/en/deployment/lambda/overview/index.md create mode 100644 content/en/deployment/lambda/overview/lambda-deploy.webp create mode 100644 content/en/get-started/deploy-your-own-function.md create mode 100644 content/en/get-started/lambda/deploy-details.webp create mode 100644 content/en/get-started/lambda/deployed-function-list.webp create mode 100644 content/en/get-started/lambda/files/just-sweet-potatoes.zip create mode 100644 content/en/get-started/lambda/function-test.webp create mode 100644 content/en/get-started/lambda/index.md create mode 100644 content/en/get-started/lambda/manual-constraint.webp create mode 100644 content/en/get-started/lambda/s3-buckets.webp rename content/en/includes/{dep-file/deploy-example.yaml => code/k8s-skeleton.yaml} (100%) create mode 100644 content/en/includes/code/lambda-skeleton.yaml create mode 100644 content/en/includes/code/lambda-traffic-split-snippet.yaml rename content/en/includes/{create-config.md => create-k8s-config.md} (100%) create mode 100644 content/en/includes/create-lambda-config.md rename content/en/includes/dep-file/{skeleton-config.md => k8s-skeleton-config.md} (71%) create mode 100644 content/en/includes/dep-file/lambda-provider-options.md create mode 100644 content/en/includes/dep-file/lambda-skeleton-config.md create mode 100644 content/en/includes/lambda/iam-role-steps.md create mode 100644 content/en/includes/lambda/iam-role.md create mode 100644 content/en/includes/overview-target-constraints.md create mode 100644 content/en/reference/deployment/config-file/artifacts.md create mode 100644 content/en/troubleshooting/lambda.md diff --git a/content/en/_index.md b/content/en/_index.md index fd8913ac..bde976ed 100755 --- a/content/en/_index.md +++ b/content/en/_index.md @@ -24,12 +24,14 @@ description: > Modern software delivery requires sophisticated control of delivery speed and traffic management, as well as integration with external tools and verification processes. Software is rarely deployed to a single environment. Most workflows require promotion from one environment or region to another after meeting constraints such as test executions, manual approvals, CI workflows, and canary analysis. **CD-as-a-Service is a centralized control plane that encapsulates those features and enables deployment to multiple Kubernetes clusters using a secure Kubernetes agent architecture.** CD-as-a-Service supports multi-environment, multi-region app deployments with promotion constraints and advanced deployment strategies, such as canary and blue/green. -## Why you should use CD-as-a-Service +## Why you should use CD-as-a-Service for your Kubernetes deployments * **Native Kubernetes resources:** You create your Kubernetes manifests how you want - manually or by using a tool like Helm or Kustomize. * **Logicless Kubernetes agents in your clusters:** CD-as-a-Service's _Remote Network Agents (RNAs)_ act as simple network relays and provide the CD-as-a-Service control plane with Kubernetes ServiceAccount-based credentials. You don't need to open any ports to grant CD-as-a-Service deployment access to your Kubernetes clusters. * **Centralized business logic:** Deployment logic is encapsulated in the control plane. You get new features immediately without having to worry about edge maintenance -- no Remote Network Agent upgrade campaigns within your organization, no need to manage [Custom Resource Definitions (CRDs)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#customresourcedefinitions). -* **Declarative deployment:** You define your software delivery requirements, traffic shaping, canary analysis, webhooks, and manual approvals in a [declarative deployment configuration file]({{< ref "deployment/overview.md" >}}). +* **Declarative deployment:** You define your software delivery requirements, traffic shaping, canary analysis, + webhooks, and manual approvals in a [declarative deployment configuration file]({{< ref + "deployment/kubernetes/overview.md" >}}). * **Integration with your existing SDLC:** You build and publish your containers where and how you want, whether you use Docker Hub or a private registry that is only accessible in your network. {{< include "cdaas-explained-how.md" >}} diff --git a/content/en/deployment/create-deploy-config.md b/content/en/deployment/create-deploy-config.md index 47c4ea12..a8ed8dcb 100644 --- a/content/en/deployment/create-deploy-config.md +++ b/content/en/deployment/create-deploy-config.md @@ -1,9 +1,7 @@ --- title: Create a Deployment Config File linkTitle: Create Deploy Config -weight: 2 -categories: ["Deployment", "Guides"] -tags: ["Deploy Config"] +weight: 3 description: > Create a config file to deploy your app to your Kubernetes cluster using CD-as-a-Service. --- @@ -14,11 +12,25 @@ Make sure you have [installed the CD-as-a-Service CLI]({{< ref "cli" >}}), which ## How to create a deployment config file -{{< include "create-config.md" >}} +{{< tabpane text=true right=true >}} +{{% tab header="**Platform:**" disabled=true /%}} +{{% tab header="AWS Lambda" %}} +{{< include "create-lambda-config.md" >}} +{{% /tab %}} +{{% tab header="Kubernetes" %}} +{{< include "create-k8s-config.md" >}} +{{% /tab %}} +{{< /tabpane >}} -## Deployment config file example +## Deployment config file examples -{{< include "dep-file/skeleton-config.md" >}} +### AWS Lambda + +{{< include "dep-file/lambda-skeleton-config.md" >}} + +### Kubernetes + +{{< include "dep-file/k8s-skeleton-config.md" >}} ## {{% heading "nextSteps" %}} diff --git a/content/en/deployment/kubernetes/_index.md b/content/en/deployment/kubernetes/_index.md index 5842e4e5..c9113c7c 100644 --- a/content/en/deployment/kubernetes/_index.md +++ b/content/en/deployment/kubernetes/_index.md @@ -1,9 +1,8 @@ --- -title: Kubernetes +title: Kubernetes Deployments Using Armory CD-as-a-Service linkTitle: Kubernetes -weight: 100 -no_list: false +weight: 1 exclude_search: true description: > - In this section, learn how to use Argo Rollouts with CD-as-a-Service. Also, learn how CD-as-a-Service implements Horizontal Pod Autoscaling when it's part of your deployment. + In this section, learn about Kubernetes deployments using CD-as-a-Service, how to use Argo Rollouts with CD-as-a-Service. Also, learn how CD-as-a-Service implements Horizontal Pod Autoscaling when it's part of your deployment. --- diff --git a/content/en/deployment/overview/deploy-overview.jpg b/content/en/deployment/kubernetes/overview/deploy-overview.jpg similarity index 100% rename from content/en/deployment/overview/deploy-overview.jpg rename to content/en/deployment/kubernetes/overview/deploy-overview.jpg diff --git a/content/en/deployment/overview/index.md b/content/en/deployment/kubernetes/overview/index.md similarity index 89% rename from content/en/deployment/overview/index.md rename to content/en/deployment/kubernetes/overview/index.md index 6ccad234..df665d05 100644 --- a/content/en/deployment/overview/index.md +++ b/content/en/deployment/kubernetes/overview/index.md @@ -1,11 +1,11 @@ --- -title: Deployment Overview +title: Kubernetes Deployment Overview linktitle: Overview weight: 1 description: > - Learn what an Armory CD-as-a-Service deployment is and how it works - strategies (blue/green, canary) and constraints for deploying your app to your target Kubernetes clusters. -categories: ["Canary Analysis", "Features", "Concepts"] -tags: ["Deploy Strategy", "Canary", "Blue/Green", "Kubernetes"] + Learn what an Armory CD-as-a-Service deployment to Kubernetes is and how it works - strategies (blue/green, canary) and constraints for deploying your app to your target Kubernetes clusters. +aliases: + - /deployment/overview/ --- ## What a deployment is @@ -83,17 +83,7 @@ defines how to deploy your software and route traffic. #### Target constraints -You can also configure your deployment targets to use constraints that prevent a deployment from beginning or completing until certain conditions are met. For example, you can configure your deployment to wait for your code to be deployed to your staging environment before promoting that code to production. - -You can set `beforeDeployment` or `afterDeployment` constraints depending on your use case. - -CD-as-a-Service offers you multiple constraint options including: - -* `dependsOn` - Use `dependsOn` to specify a target deployment that must successfully complete prior to starting this target's deployment. -* `pause` - Use `pause` to pause a deployment for a set period of time or until an authorized user issues an approval. - +{{< include "overview-target-constraints.md" >}} **Example** diff --git a/content/en/deployment/lambda/_index.md b/content/en/deployment/lambda/_index.md index 0e52e63f..938170dc 100644 --- a/content/en/deployment/lambda/_index.md +++ b/content/en/deployment/lambda/_index.md @@ -1,12 +1,8 @@ --- -title: Lambda -linktitle: Lambda -weight: 10 -description: > - placeholder -draft: true -no_list: false +title: AWS Lambda Deployments Using Armory CD-as-a-Service +linkTitle: AWS Lambda +weight: 1 exclude_search: true ---- - - @TODO placeholder change to DRAFT \ No newline at end of file +description: > + In this section, learn about AWS Lambda deployments using CD-as-a-Service. +--- \ No newline at end of file diff --git a/content/en/deployment/lambda/create-iam-role-lambda.md b/content/en/deployment/lambda/create-iam-role-lambda.md new file mode 100644 index 00000000..da370e45 --- /dev/null +++ b/content/en/deployment/lambda/create-iam-role-lambda.md @@ -0,0 +1,17 @@ +--- +title: Create an Armory IAM Role for AWS Lambda Deployment +linkTitle: Create Armory IAM Role +weight: 5 +description: > + Create the Armory IAM Role that CD-as-a-Service assumes when it deploys your AWS Lambda function. +--- + +## {{% heading "prereq" %}} + +Make sure you have [installed the CD-as-a-Service CLI]({{< ref "cli" >}}), which you use to load the AWS Cloud Formation template into your AWS Account. + +## Create the Armory IAM role + +{{< include "lambda/iam-role.md" >}} + +{{< include "lambda/iam-role-steps.md" >}} diff --git a/content/en/deployment/lambda/overview/index.md b/content/en/deployment/lambda/overview/index.md new file mode 100644 index 00000000..1ec56317 --- /dev/null +++ b/content/en/deployment/lambda/overview/index.md @@ -0,0 +1,295 @@ +--- +title: AWS Lambda Deployment Overview +linktitle: Overview +weight: 1 +description: > + Learn what an Armory CD-as-a-Service deployment to AWS Lambda is, how CD-as-a-Service connects to your AWS Account, and how deployment works. +--- + + +## What a deployment is + +A _deployment_ encompasses the artifacts, configuration, and actions that deliver your code to remote environments. You can configure a deployment to deliver your [AWS Lambda](https://docs.aws.amazon.com/lambda) function to a single environment or multiple environments, either in sequence or in parallel depending on your [deployment configuration]({{}}). + +You define your CD-as-a-Service deployment configuration in a YAML file, which you store within your source control, enabling code-like management. You trigger deployments using the Armory CLI, either from your CI system or your workstation. + +## How deployment works + +{{< figure src="lambda-deploy.webp" width=80%" height="80%" >}} + +CD-as-a-Service starts a deployment with a target environment, which is a combination of AWS account and region. The first target in a deployment does not depend on other targets. Then deployment progresses through the steps, conditions, and targets defined in your deployment process. + +CD-as-a-Service automatically rolls back when: + + * There is an error deploying your AWS Lambda function + * Deployment fails to finish within 30 minutes + * A webhook fails + * You configured your retrospective analysis step to automatically rollback + * A user fails to issue a configured manual approval within a specified time frame + * A deployment target constraint is not met + +How CD-as-a-Service performs rollbacks: + +* If you have specified an [AWS Lambda alias](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) to use for routing traffic, CD-as-a-Service points the alias to the old version. +* If you have not specified an alias to use for routing traffic, CD-as-a-Service publishes a new version with the old configuration, so that the live version of your AWS Lambda function has the same configuration as before the deployment started. + +## How CD-as-a-Service integrates with AWS + +{{< include "lambda/iam-role.md" >}} + +You need to store your function zip files in an S3 bucket, and the S3 bucket should be in the same region you deploy to (this is an AWS limitation). For example, if you plan to deploy to three regions, you need three S3 buckets, one for each region. CD-as-a-Service deploys your AWS Lambda function's archive from your S3 bucket. + +| AWS Accounts | ArmoryRole | Regions | S3 Buckets | +|--------------|-----------|---------|------------| +| 1 | 1 | 4 | 4 | +| 4 | 4 | 1 | 1 | +| 4 | 4 | 4 | 4 | +| 2 | 2 | 6 | 6 | + +For each AWS Lambda function you want to deploy, CD-as-a-Service needs the following: + +1. **ArmoryRole** ARN +1. Region +1. S3 path to the function zip file +1. The ARN of your [AWS Lambda execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) +1. Your function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html) and handler method + +This basic example deploys one function to one region in one account: + +```yaml +version: v1 +kind: lambda +application: potatoless-facts +description: awsLambda +targets: + us-east-1: + account: armory-docs-dev + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-east-1 + strategy: allAtOnce +strategies: + allAtOnce: + canary: + steps: + - setWeight: + weight: 100 +artifacts: + - functionName: potatolessFacts + path: s3://armory-docs-dev-us-east-1/potatolessfacts-justsweetpotatoes.zip + type: zipFile +providerOptions: + lambda: + - name: potatolessFacts + target: us-east-1 + runAsIamRole: arn:aws:iam::111111111111:role/lamdaExecutionRole + handler: index.handler + runtime: nodejs18.x +``` + +## How to trigger a deployment + +* [Use the CLI]({{< ref "cli" >}}) in your terminal or with any CI system by installing the CLI natively or running it in Docker. +* [Use the GitHub Action]({{< ref "integrations/ci-systems/gh-action" >}}) in your GitHub workflow. + + +## Define your deployment + +With CD-as-a-Service, you declare your deployment configuration outcome in a YAML file. + +For an AWS Lambda deployment, you only need to provide the following pieces of information: + +* The target you want to deploy to +* The AWS Lambda function you want to deploy +* Provider options for that AWS Lambda function +* The canary strategy you want to use for the deployment + +## Elements of a deployment + +### Targets + +Within a deployment, you define _targets_ that are equivalent to the environments you are deploying to - a unique combination of AWS account (ArmoryRole ARN) and region. + +The following example has multiple region-based targets in a single AWS account: + +```yaml +targets: + Prod-East-1: + account: armory-prod + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-east-1 + strategy: allAtOnce + Prod-West-2: + account: armory-prod + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-west-2 + strategy: allAtOnce +``` + +This example has targets that are separate AWS Accounts: + +```yaml +targets: + Lab: + account: armory-lab + deployAsIamRole: "arn:aws:iam::111111111111:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + Staging: + account: armory-core + deployAsIamRole: "arn:aws:iam::222222222222:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + Audit: + account: armory-audit + deployAsIamRole: "arn:aws:iam::333333333333:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + ITSec: + account: armory-itsec + deployAsIamRole: "arn:aws:iam::444444444444:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment +``` + +#### Target constraints + +{{< include "overview-target-constraints.md" >}} + +This example has multiple targets and illustrates `dependsOn`, `beforeDeployment`, and `afterDeployment` constraints. + +```yaml +targets: + Lab: + account: armory-lab + deployAsIamRole: "arn:aws:iam::111111111111:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + Staging: + account: armory-core + deployAsIamRole: "arn:aws:iam::222222222222:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + constraints: + dependsOn: + - Lab + afterDeployment: + - runWebhook: + name: Integration-Tests + Audit: + account: armory-audit + deployAsIamRole: "arn:aws:iam::333333333333:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + constraints: + dependsOn: + - Lab + afterDeployment: + - runWebhook: + name: Audit-Analysis + ITSec: + account: armory-itsec + deployAsIamRole: "arn:aws:iam::444444444444:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + constraints: + dependsOn: + - Lab + afterDeployment: + - runWebhook: + name: Security-Scans + Prod-West-2: + account: armory-prod + deployAsIamRole: "arn:aws:iam::555555555555:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + constraints: + dependsOn: + - Staging + - Audit + - ITSec + beforeDeployment: + - runWebhook: + name: Send-Slack-Deployment-Approval-Required + - pause: + untilApproved: true +``` + +### Artifacts + +An _artifact_ is your AWS Lambda function name and the S3 path to the function's archive. You should have an entry for each deployment target region. The `functionName` is unique for each entry in the `artifacts` collection. + +```yaml +artifacts: + - functionName: hello-world-python + path: s3://armory-demos-us-west-2/hello-world-python.zip + type: zipFile +``` + +### Provider options + +This section is where you provide additional information about your function. Each target has an entry. + +```yaml +providerOptions: + lambda: + - target: Lab + name: hello-world-python + runAsIamRole: arn:aws:iam::111111111111:role/LambdaExecutionRole + handler: lambda_function.lambda_handler + runtime: python3.10 + - target: Staging + name: hello-world-python + runAsIamRole: arn:aws:iam::222222222222:role/LambdaExecutionRole + handler: lambda_function.lambda_handler + runtime: python3.10 + - target: Audit + name: hello-world-python + runAsIamRole: arn:aws:iam::333333333333:role/LambdaExecutionRole + handler: lambda_function.lambda_handler + runtime: python3.10 + - target: ITSec + name: hello-world-python + runAsIamRole: arn:aws:iam::444444444444:role/LambdaExecutionRole + handler: lambda_function.lambda_handler + runtime: python3.10 + - target: Prod-West-2 + name: hello-world-python + runAsIamRole: arn:aws:iam::555555555555:role/LambdaExecutionRole + handler: lambda_function.lambda_handler + runtime: python3.10 +``` + +Be sure to view the [AWS Lambda Quickstart]({{< ref "get-started/lambda" >}}) and [config file reference]({{< ref "reference/deployment/config-file/artifacts" >}}) for additional examples. + +### Strategies + +A deployment strategy is the method by which CD-as-a-Service deploys your changes to a target. Strategies can use different techniques to allow for rapid rollback should a problem be discovered, minimizing the impact of potential issues to a small subset of users. You could also use a strategy optimized for speed. + +For AWS Lambda deployments, CD-as-a-Service supports a canary deployment strategy, which involves releasing a new software version to a small subset of users or systems while leaving the majority on the current version. This strategy allows for real-world testing and monitoring of the new version's performance and stability. +If the canary users experience positive results, the new version can be gradually rolled out to a wider audience. + +This example **routes 100% of traffic** to the **new version**. You’d use this `allAtOnce` strategy to initially deploy your function to AWS Lambda when the function does not exist in the AWS Lambda console. **This strategy is also useful in non-production environments such as staging.** + +```yaml +strategies: + allAtOnce: + canary: + steps: + - setWeight: + weight: 100 +``` + +For subsequent deployments, you could use a canary strategy that splits traffic. CD-as-a-Service uses your function's AWS Lambda [alias](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) when splitting traffic between versions. + +>You must create the alias in the AWS Lambda console before using the alias in your CD-as-a-Service deployment. + +This example is for deployment to multiple regions in a single AWS Account. The canary strategy splits traffic. You declare your function's alias in the `trafficManagement` section. There are two entries in the `trafficManagement` section since both staging and prod targets use the traffic split strategy. + +{{< readfile file="/includes/code/lambda-traffic-split-snippet.yaml" code="true" lang="yaml" >}} + + +## {{% heading "nextSteps" %}} + +* Work through the [AWS Lambda Quickstart]({{< ref "get-started/lambda" >}}) to deploy a sample function to your AWS Account. +* Learn how you can [monitor your deployment]({{< ref "deployment/monitor-deployment" >}}) using the UI or the CLI. +* View the deployment config file [reference]({{< ref "reference/deployment/config-file" >}}). diff --git a/content/en/deployment/lambda/overview/lambda-deploy.webp b/content/en/deployment/lambda/overview/lambda-deploy.webp new file mode 100644 index 0000000000000000000000000000000000000000..be1b08359e4536d26a9a1016d73a118aac73650f GIT binary patch literal 17496 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 ki_;L` diff --git a/content/en/deployment/strategies/blue-green.md b/content/en/deployment/strategies/blue-green.md index 18155c61..bbc4ef30 100644 --- a/content/en/deployment/strategies/blue-green.md +++ b/content/en/deployment/strategies/blue-green.md @@ -8,6 +8,8 @@ categories: ["Deployment", "Guides"] tags: ["Deploy Strategy", "Blue/Green", "Kubernetes"] --- +**Kubernetes Only** + ## What a blue/green strategy does A blue/green strategy shifts traffic from the running version of your software (_blue_) to a new version of your software (_green_) based on conditions you set. You specify conditions that must be met prior to routing traffic to the new version and before shutting down the old version. See the [Strategies Overview]({{< ref "deployment/strategies/overview" >}}) for details on the advantages of using a blue/green deployment strategy. @@ -22,7 +24,8 @@ A blue/green strategy shifts traffic from the running version of your software ( ## {{% heading "prereq" %}} -Before configuring a blue/green strategy in your [deployment]({{< ref "deployment/overview" >}}), you should have the following: +Before configuring a blue/green strategy in your [Kubernetes deployment]({{< ref "deployment/kubernetes/overview" >}}), +you should have the following: * Kubernetes Deployment object diff --git a/content/en/deployment/strategies/canary.md b/content/en/deployment/strategies/canary.md index e856b974..86ff4e70 100644 --- a/content/en/deployment/strategies/canary.md +++ b/content/en/deployment/strategies/canary.md @@ -4,8 +4,6 @@ linkTitle: Canary weight: 5 description: > Learn how to configure a canary deployment strategy in your Armory CD-as-a-Service deployment. -categories: ["Deployment", "Guides"] -tags: ["Kubernetes", "Deploy Strategy", "Canary"] --- ## What a canary strategy does @@ -33,7 +31,8 @@ When using a canary strategy with a service mesh such as Istio or Linkerd, CD-as ## {{% heading "prereq" %}} -Before configuring a canary strategy in your [deployment]({{< ref "deployment/overview" >}}), you should have the following: +Before configuring a canary strategy in your [Kubernetes deployment]({{< ref "deployment/kubernetes/overview" >}}), you +should have the following: * Kubernetes Deployment object @@ -88,7 +87,19 @@ targets: You can define different canary strategies for different deployment targets. -## Example deployment config file +## Using canary strategies with a service mesh + +Service meshes enable setting up accurate traffic splits between the new version and the old version of your app. If you are using a service mesh, you need to add a `trafficManagement` block to your deployment config. + +```yaml +trafficManagement: + - istio: + ... +``` +For more info on using service meshes, see the [Traffic Management Overview]({{< ref "traffic-management/overview.md" >}}), which explains how CD-as-a-Service implements progressive canary deployment using an SMI TrafficSplit. + + +## Example Kubernetes deployment config file In this basic example, you deploy an app called "sample-app" to two deployment targets. @@ -180,16 +191,48 @@ spec: ``` -## Using canary strategies with a service mesh - -Service meshes enable setting up accurate traffic splits between the new version and the old version of your app. If you are using a service mesh, you need to add a `trafficManagement` block to your deployment config. +## Example AWS Lambda deployment config ```yaml -trafficManagement: - - istio: - ... +version: v1 +kind: lambda +application: Sweet Potato Lambda +description: Sweet Potato facts from a Lambda function +deploymentConfig: + timeout: + unit: minutes + duration: 10 +targets: + dev: + account: armory-docs-dev + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-east-2 + strategy: trafficSplit + +strategies: + trafficSplit: + canary: + steps: + - setWeight: 10 + - pause: + untilApproved: true + - setWeight: 20 + - pause: + untilApproved: true + - setWeight: 100 +artifacts: + - functionName: just-sweet-potatoes + path: s3://armory-docs-dev-us-east-2/justsweetpotatoes.zip + type: zipFile + +providerOptions: + lambda: + - name: just-sweet-potatoes + target: dev + runAsIamRole: arn:aws:iam::111111111111:role/LamdaExecutionRole + handler: index.handler + runtime: nodejs18.x ``` -For more info on using service meshes, see the [Traffic Management Overview]({{< ref "traffic-management/overview.md" >}}), which explains how CD-as-a-Service implements progressive canary deployment using an SMI TrafficSplit. ## {{% heading "nextSteps" %}} diff --git a/content/en/deployment/strategies/overview.md b/content/en/deployment/strategies/overview.md index 4995f823..c5f9ef29 100644 --- a/content/en/deployment/strategies/overview.md +++ b/content/en/deployment/strategies/overview.md @@ -3,14 +3,15 @@ title: Deployment Strategies Overview linktitle: Overview weight: 1 description: > - Learn about blue/green and canary deployment strategies for deploying your apps to Kubernetes using Armory CD-as-a-Service. Compare features to decide which strategy fits your use case. -categories: ["Deployment Strategies", "Features", "Concepts"] -tags: ["Canary", "Blue/Green"] + Learn about blue/green and canary deployment strategies for deploying AWS Lambda functions or your apps to Kubernetes using Armory CD-as-a-Service. Compare features to decide which strategy fits your use case. --- ## {{% heading "prereq" %}} -You are familiar with [what a deployment is]({{< ref "deployment/overview" >}}) and the elements of a deployment. +You are familiar with the following deployments and the elements that comprise each type: + +* [AWS Lambda deployment]({{< ref "deployment/lambda/overview" >}}) +* [Kubernetes deployment]({{< ref "deployment/kubernetes/overview" >}}) ## What is a deployment strategy? @@ -18,6 +19,8 @@ A deployment strategy is the procedure that CD-as-a-Service uses to deploy your ## Blue/Green deployment strategy +**Kubernetes Only** + In a blue/green deployment strategy, you deploy and maintain two identical production environments throughout the execution of the deployment. You maintain _blue_ and _green_ production environments. The _blue_ environment contains the latest known stable version of your app (usually the version you are replacing with the new version) while the _green_ environment contains the changes you are currently deploying. Once you deploy to the green environment, traffic continues to flow exclusively to the blue environment, allowing you to validate and test the changes in your green environment. You can do this via manual testing, automated testing, or any other validation method you may use. diff --git a/content/en/get-started/deploy-your-app.md b/content/en/get-started/deploy-your-app.md index 832a3512..f0e63d6f 100644 --- a/content/en/get-started/deploy-your-app.md +++ b/content/en/get-started/deploy-your-app.md @@ -1,6 +1,6 @@ --- -title: Deploy Your Own App -linkTitle: Deploy Your Own App +title: Deploy Your Own App to Kubernetes +linkTitle: Deploy Your Own Kubernetes App description: > Use a canary strategy to deploy two versions of your app to your Kubernetes cluster with Armory CD-as-a-Service. Install the CLI, connect your cluster, create a deployment config file, and deploy your app to two environments. weight: 10 diff --git a/content/en/get-started/deploy-your-own-function.md b/content/en/get-started/deploy-your-own-function.md new file mode 100644 index 00000000..11120848 --- /dev/null +++ b/content/en/get-started/deploy-your-own-function.md @@ -0,0 +1,11 @@ +--- +title: Deploy Your Own Function to AWS Lambda +linkTitle: Deploy Your Own Function +description: > + tbd +weight: 10 +draft: true +--- + + - lambda function + - S3 https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html \ No newline at end of file diff --git a/content/en/get-started/lambda/deploy-details.webp b/content/en/get-started/lambda/deploy-details.webp new file mode 100644 index 0000000000000000000000000000000000000000..ab04676a65a0f41c5730ba81f20fcaee4cb90472 GIT binary patch literal 52376 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 G0001k=my*X literal 0 HcmV?d00001 diff --git a/content/en/get-started/lambda/deployed-function-list.webp b/content/en/get-started/lambda/deployed-function-list.webp new file mode 100644 index 0000000000000000000000000000000000000000..7c0bed1932882ab2bceaa793a2a26c873afea229 GIT binary patch literal 56474 zcma&N1CSxBD zYWJkK>DS?BcaNXrZSi4umv;ng_FVuLyoa6=+;u;0@2%h70mJn+{G=}g@Kf-g_)P-GZlb=zKI0zrn)rzbC-~F6-+ZS1=71wWyZxjuyU#d%{uBOr zVAZ#;&m?dir~#OIIek67Xa8dO)O*@H;&-7eK z!G5HGkq?J&r7!WfIvd~`Kc@G1Q{4^!1wS$X)Q9NJ?*VvC_?N#Bs0*|KV6Gb7&kfZ% z_-6P~eQ^MqUO>MX-s~P2t_aKdm;0u^<-XNEp`+&({L1|dftVkc0GccCH?#Y^)4cV* zVLwg465#P`>@e>lZyDI3==*nNFsYaUxd|akaYI8k=?&R^?XVScfgQcS2$3ijW?f5`0`F%cgoqAnu7%Zp87 z0$*N62eB|Bd@jr8um6P~KCkPwERY~1Bh9-t+01V(O-5#h5;4dTt2blqGyeJ(l`8Fy z$oLXC39*pEqi~>j>pR=o3Mq-<3t{mEbkDzH1|GEyiLBceH^jat8XmWa>u5gf0}Zis zYcTi0&kJBrUWE6|n-V`}cvaX9zSy%Eu zPMTyA+nxJVUM?VEHb~L1p^WnP!P!+O@ozEeqX6sT-oUE_B@PeYGg*fZmuJNoTo|Vk z??j;oF+6DWXnbS2`AzedC+<%t`uCr;7QGNTB_Mdvh zrph89<+rBZvP)@t|4N7~6n%Kg;PVk&3b{sdfON7*)`4XuYOPjQu1)zXSO)28|(h;uM`#&fL=T;XzWD(9P72xdmmZex6q$9_ z)jo=g$mJx#+smL^pn{V`aU6GcpEicb{#!gLSCV>L{W&;6loF{XZ$QjVxXs7)X(m#_ zjj}I&R4h(G>Ub_-wPj5HFb|hLp?>D~@8$m&h5ffo%qj|@2pHDznvM1oD62qaS&eWv z?paO(`}tdZ`>rT7Fu~3LyK&7MR{ixyeaChpF_pJLNhA;HMLf)uUsZudw?&nX%kzYn znqzu#$3R0w2=^|J0iG}qC{edi$c4pm`*Z>++6~5eBCE027HdDiBncmS2*O$ma?mfwi3yOz@E+1PXsd@M_}Kx$C>_5YEs{~;FgYatm)qgf*V z6YL;lkgK#TQ6$qdi7<#oJXA+-cI{SPB~WrW?K7C^{DjU=u27bs2ZL|hYjkr5PRDw) z)qVwhCT&(Mz+*~p+DsIM{lvR@F)hsghqK{oZVf7I=RIR?)E0(DJnQa~qos*lO0P;b zfQ7Najc|2j`|L0uHg;4I3#BLT4f7Wtqv*eDlvx~fY7d|Bedz+zf5Gs(uD$H;EpEpE z75iv3ln|TYO%4fM>c?WD^T%nCX`2KP?3AFuYbwfO>jv|q0SNxN6*Q&W_R68R=fAEv ziypb6le+!>#@$SBMv!P(J7w$rMGQsOq%N#?he~VRUk=X75%??MRf7%p`YNi8u}!u z70wcYhuAEdWup$Yii)VN#dxJHm$AzX!+pcKQ-dD)?Aa8L2N?+^)rj&7(Rxy1I$*iL zG!V@w=%+posgmxBA^W-QM@N{h=6`&m_i3cr52UqBX<(%Q*)8=86PuQOqg2C(Ybd82 zZ%YdWhlf>g+x#>ECd$}=qIzGwJ|{av%+D^CLW9aZA8JtExRES+!Q+yzUd-pjYHSnZ z`ksg??ZLbtm1#Tm(RmWRsDHE~EYSASqRL#};*SZ~mkC3-E)9-RddIy#-KAxjQvX`0 z`T8Lns86%eyj$OIoE=-=#c28mDjZ!>*p+dlDXn^x`hzrBUl~qL87Z%%oO;}LZRM?I z>sOWMUGuX@TWXt4Hm}N$TNY)x6FT$kW0pYl8~6EMiSGSpRxCz#5nJB zy;3vSoT0+ob{k|I(7NlxXEM}zjHL}R*)Jwn2v|-l?^<)M#z-o#R)C?;|JCFuV)|gu zF58^ArwhU6s21s^Szayfu+SLOS$pE3Y^V+6X(4cKEPjornEL6F1rBFd{?0ixrJKhr zFBbi;21~h(gl~MP{l*5ks=1LG-x-wpqm7AY$3`Gi=gfg(7PDW*f`XClA6tocCS;)d zEDixaSe1wYA^lvD*Q)MN&_DW-Agrr-Bg7oY_8^z7nY zNbwWo@!;QR_&+0KLlU#e=BdSf`mf0RHq7Q-@%dL|&u9G~+x`w9(Jc2j=|2`xvC?&SiK zZbr$0+wZ5jN%+J&)!XY91dnBsJH`@TU5255ubahAi!EAZ$$S3N`Rl6Pv=j3zD&q&Z z_S#942ygM}T$Z|GwRoJd*-NWIi-Ie2Q`~`pfA~j~r2l8F5!*|Xb^ASu@jn$v4pI=7o%3vVgZqE+rQP@(|rqk zh_NK;#9l%Wd6!WHEc1Uzeh`9SI58$6>qm05{NG<11T+yQ_bu-)>r%W8eSv%#J!cDhYO_(VptcEP-h_Gu+gW zDA4uOmOLjq5puoBfz+0|t?M7{rWB7#ZkJ?x`e#|krIX>D5!IQI2HdFnR^C3G?32%u%dVa#hAK~{!a*k+PeYkZ)v?TI6vNWBVd@iDWNH;3|cE@IZ$#AUUD@z6=HDiYku@GppV0h@UOHgx0;j79r8+6#BiVNb)^cX_bx#HGZumIE} znq5Aez1Pn$nc7dy#8R1naB0*OkEx;441LKt*a%YdU-l0E+U?B+WqoanR;FPsxid^e z6#UGjfD~y z+84jdeRgZ(eTwzl15)Uo40_3hy$~Md^!xM3>iJo?=%2cW!H&c+zXG<*wM-!zFi29a zlRVdmq@AzUnsUOw0v`53LsC0LDaKIxK=-2Iq@XmQt?kXAAKoqUOC zW{k+H=x51^F?23toaru^{pz~FpVoi}==qaa6v4<`(iC^iVi+jj*b!|`bmqu`du1Um zG4y1N0m@1cr~!dsX;3sLFLAYhBP_myaY8r5J)(mMShzthKJ|clRGZKC8wC8yevo3Z zwbGYqthc9RRonlFTZZ<}@41R*Xgc<`vFDBnb@;k+pfQ!w8CW!`5v5M zD!B6~%=!m-I*+1HrctlUqZ6)N1?r8gx$aQMl89N~`OH!RslYaKDjeETydjw_tC)q1 z?jnE(wu^u5k4Eyv5?)K~i~$iZ4BNCWyPN;ef!`2eR`u_OirP>Ehjt3|ucYw#DCpn! zrY91P>|EaK>WIXC4`?PHWCw)r(;vO?X1&Q$oBqT1S)P#6k@sWtBeknsn^CJf0HIDZ z6oak4KpF}xY*!{%u){O_7_~F@A&4I!9NI*DchDVVAs57^DK|{*;O~9K$kz?A>e?8Tx0$k+Gcf4ZK{Tk4LLwPDb-(cqsL__(M7RMLs5y zR+i>CawKa;_7)s1Oar#b4PUYnaB+?w_K$|;^*^;kNx@I0%b%x^Mk+OoJ@MxV*mq29 zr>e@UPeij*c^?=;rCl2&iXt>DZ|W>q{&%*sii ziv9w)?pR2>GM_O|v)%D6`|STcAE#V=#sq^!I1(PFz>NT-8*_FKkl^~&Pc{)_4g3e3H&O^Cp9X#Tlo4}PZv*jL7DMEf{uf7uPx1HJ|P9uR3XN#}G?*hKz{A&O=l>}KuziFb| z;XCOatf+?0g?4L$$1i@n6eS{OHBo6L$uB-ruo9OoJ(_vFp6KxX;nTFxPpDk!8}uPYx)P-*AKL{GKe>xUKf?&1JkT8V5(;66-AXfjN3dv9Y?#y%rmP7 zDif!Ef5&_GI^vp_?j$aAqpBq2CYh_fi!_(}^!nLPP>)ORreG1!z7D>sYC4$46~xHF|)*EWeU(0v2R1Jsf zSAs_!EXqso-SczPSC5SN*$|p9O!CgsvRZ#>RTADnvFlf7RjnW)R&sMy(1Im8ZeNV` z%|>Ax@WDk;dy6CzT%}8$PgZq216Gh0u)yZb|J?26A{Ny@9*dlkA(pkZ6I9tVeP(O5 zJ^G@sGdqRjepKcNU`OaOa=!;=D8z7pqRq!=*{f^;?SVXkrhWO#>JA|^FpO`S7=+7) zh#0jLg~8qModXVf4d(cHMNUllhg^v67^Vkx_`gYCq{ol~{Cfo*kX#JSC;|Cr4XzIo z&eguLMHJ~fd-IGZVL_t%tF&PN!6gd|8l>yRfhf(XEy92P4%?LmzB`rQLN@X~|F-FM zv#=a2BTXT`g0`h7#afEJRbI%v2FYl>?}p|4NhLeUp?n3N5_`|US*B{ee7%>#*#3k- zS50vz`J3l=u)c^`Yiz{@;?%ahdNieHCttR*K#cdH)S&FCCjEgrREOg`R-n}rnKN#( zI}XXQ39g66ODX2Z9M{6Z@-{)8p?H5lMmm?miOr!t)=X)KD5@lcq5w_?>)qXN_4O6= z+XPmLn`2!QF&O^!k)9LN+Hfqv4dH4(k$7fNGXw{0{%#lI*~(+jNW+kP)D_dH(Slmm z;bG|ld*0cAzt%``P#q!le?BYYF0HDs2>^$;KOC-U@RarH#raU z2jWG;(S2#WtOkfdQYq$TaSqM%G`*MjJmO5!*52GEJ8juPok`)0>B-M^8UfO=R z*F*sb1GZU|eJP&uv6qq~`2;ak9r?dNXy_Zc;eVaA1ed1B4{IC_4#PLaiHsT2!ia96 z21SAb2+PVqaZ{Lenh9~ye?lY23>kVL)UoFssg;tHv|LUqs8;593<|%A?OH`* z81R_77bS5W0V zb+Qd}b1ZIxq-h3%oDi!s*C%k_;yrgCq?oRWgOw&zc81DxF*~1NUS@CcSfmsgENjm zC%ZQGLJ1yUGw4}wy2fybDY~c%gM|QblctGN!SXCdol0)Y zF-`l;hC`NK+sE<;t_h(6Kfev7WHI(tj_Rgp6L ze(kd%9PRnscH6}3mUv=6m$(45W2(ZltI@!B*^@E`O%MJ|ql`uUt(&FNA|Odcr_@`n zc{e#YO*RsHFp`l1a4_7)^$4m8w9`f-p3VHKc<>hUF+7bIf~>uXon5vRsGWc0sHhda zM8%!<$XipOqhnUzccmMEi(nP)Yg6c94h(vWiGEF{u3l}Z9NvzAp`{0#wMjP;SRXEH zl$YuCCOSNGMO9kmSWR0>*}&JLn@!rb_E_T3&=wYk zxrctvlJ|eZ#9bKf&&V3so^n$lC%TebOJg8xQI$*veJBz!35O$~cnBcNtx3wH=X`R2 z*&#%huYsgTFiPFue_QBj<`8)J7EjCCi0;z9J6qQ^e2_wWzT}hWPoJab9a!x_4Vds? zqN^K^))QVu{i+S5h@ICbVpNR4UUjgHV9*qsIuVO#Eggr)f^U(%Z~Fa8T{$vgCKpv_ zlUJDD4hVZsL#OR^{wkw|WIIn(>t{;-*?Sc%+T|Z;l`kQ`ci!v!w_XL>ny{(>pH?@E zXY+T+)+>=+AEfMc7tfud4-R{JCzmktyEG$pA#Lc7@=(6)DB-sYoF#GM`CsJk>-5os zwVo^*JObmfbIOaJ9Eh92ZBk;YG0UKJKT!0X;(o_zSsZzeQsng3YA%X)DUt_0%;6nP zp&~f*3QWZQ?S}o@6vsLw?LE>KooRYLmQZ6OtyRR);R}GJ6hwO4%j>vjlC74mvY=|~ zaw*-#7;S+JNCP7eSVb~4L=B9*d7LZE1b2$qN%pV11#34kfLyU6Rsa(5nhwF_sAj|c z&O3g>yXFWWv<{!npSdyL9@q2~eZ<-GOZ5wn?L!W2lQy#(o6!wofEc(ew6iUWa1wg> zl@tTPf#+THv#=gLGf_u&O<5hawZ_bwXDe6!iLrshEAJ>!0Y~lk3;UDWvu2W5&U8b@ zArJk26`KJf zWgn6L9a-fZQuTsXR6*AEIFlfrFRgq`cyic9eo|U4sso$U=c`z@|As35=F@F#|Q}29cg>lsB>hThg*TW$7;Mp;i4Q zEYhN5JxrHnTU;~am9@lcys7(lUU-ayTK_|N8W0QE5X*ak}P%=Omxacn=E+?5W=)LbVLP zC4O1%G$mITw-&>swf}M3l(W)?wsbsXI2Tp5E_f2! z|AiMGduXbt$H6!H(i#)UjS=9F)|&vkp#2g{>61UJ^jr`Z+jkr(=`;Q#8rpDr z3#`nKOYgIOH2eUR_0vDtRp>bcHbjc9VBhh+8MB{g_y-19?LS%Nyh>0L?Adt-QcpsV!LiQ=B!EV^m~VoEjy-W(87}YhU>3;3PWV6LwkXTM(QVF!waIPec0$X1U zbUZKojjFOZw4RQS6hi75>;B|8dZ~Z zy(c>nchZhqFGb8fK&Nvf>%|d@@G|bPtAjAA)1>c@me{WVT2+=*FwS2MlH8o@s0kzKYQFiU28pyFS++Su;na!M>uDD*Qnd9AZdm@VuTw*s`O-xRF%(` zHrYaT`)~kM#lNM9yFYA!^itt}D`~K8aO2?Gm=VGfh zQ60{;M{1y@5*{L%63%A9%lK!{!V=FLE{q~5ocNyfcW$A>k6Gn@Sw9?#z4ISxqU3IR z;MY*HbF(bq(FlNnV@l_Td3tqFzu&kd`z8PrLR_4A%^({zd`xB-ve%+GB;FaG@DS|QX zm4oDC%t?P53uB~bk<&mjo;6=*TomTR_Dd(f{ezVNlC8nHeCX!@f`K+hu&bEe>#WoL zd6`stR4S&U1pa;137b$*`UUa%?g`EL0Z+THbS(q~6ht4zNpln18&iG7xlg6$Fq(Co zfnW1leh1IojK9WgV+G15MoAn>7PMbJLl7el!fjP83J3d4?wDAgQYp4e* z3tGe(!Ix(J5qhreVN6L_@1Q2hP-S=JrpG}gRv~iYGT=9}4KkXB3=;Pq@YBm+#a?^X zxFOs)p7I13l|32(apcPrw$y>N?VF93n_}x=H!f3Z{gsLfNriTf5k!9WUv_Ty zdudE?{iFUWohms?!qhe^2-80U{KvNB0`6)8b}JA!aZt*XzK-dUU~tXIoZuu|m8k&R zfo=y0|6t1p7=02m#k-774$w(hKX7FDPcvjS zY=NlAh+9)K!ajQ)v|j+Kq-XW7Lwlg`sJ#+oCXx(aDPJ;{F<#+%=p(-d3WJ!df;`+7 zZRvVB^Dig?)tPdr2`_yx+?VQ1Xg{QI^n)E=9~km_0XJ67(8~CXhxpM#VsI7RWOo{R zdm_A84~H#%2|sL)P?*-e22VN)7>v*CPg zN8k3kV-0p%!BSrxmHlw}3pr$n#=gZgLmHGSBP;?>#$i0ab=qE21tD~QMwx@_OlR82 zBy-1KZw}h1wj2>aF^SS7Z09-8313gs8__Jdf7Z7n6BeDB18Gps*m%z{{TbNaOZfSS zcM)VT%!884fwlRIilvVX$MpBB`~i3OHr5GY9@!5(S-=vBi^EDDBC0BvrxSTmu5ppu zg6>I4qu^M$GHs3$n0|7SA6nsQAl0fd4BXHs&ID)2h^K+jnhSBdx@xIo;7>P`efg9= zJsmUp45e5<|NQ;_ht&sR75i}US)V*wHthgdBGYdRG7hv}U=E^v!h3)0?j+8lu+Pd3aPMirjo+JCOyWHrF~^8!oN%au5~jP~`tvAS z(zdh~nu(dVc$GyT6JVqP55-89?y;DdcHg)H)3g5k*!?pcx@Q-$#*n)<2`!aNLQz3Q zeZO)a4R|ZZ6eT=6oaXvg;TZAcK7-~x&~q|QJn}wB5k5)MGd&3ME95v#_pDPM1#u4{ z1SclHVp1fGNpkWGD5iq6)&Fq*XnkG8VfjsL8ERmr5aU*Yer+BU_4{P;1W6x9cBI7* zuRkNk%1iQo0!9_P`65=3o~bHOnvpxG#F=HtEnrg0m0>P2NT!_Y&jDgO5p$h)bee~K zq-bw%s9Y|q0|R(W=bEFnq-HEl2^wxq%pXs44@kz=xuwG)~vF>da9-17EaIm8Lr>*F5$rU*!y)kdf>5w`% z(oox-JH71p-yqdUuPXc%Sk-BDIvm5Qlrk;>dK9{DLk?d9l>T*XQdlU=ZQaY1G!V)P z#5ZVO>bZYoj&Muj;$(){8`ls#dWkCzi4zRX)dl*)lMo36`^wTiE}d1rW&fstG(_>- z|Ck{R<>{ac|N0yax#8FAIwkXPQU z4SSF4n@f368;jjtR>0vzC)~`g#Pb$N+|EwmBbEwaK~fq}2?~f5mb*TM-1|k7n-N=A z5VLPUiwGafwpGG8BQhuGJ~Ke=%M{O|bmlz3R@G>$u_9AsH8>;l-4BD{GAkjjt^5l) z(g(qG@Lo0H4DMDA)=l$Tt_+K6xgw?MfLP`8=5B((umBKPbFL(nDZlTrkU z>oFb+!;g~&aKc*}7H2}LS!{k;^6 zHtL5KvsiM!Nx$1+1-x>-+H9`MGH?Z`76cMTbkVGJb{lc2d2e33 zu|UUs=mBJikaVHs=?X-U17bM4kg0HiS8=WpGM%2TM)ywg2b$yrV5%QmlR+^l<-$&0} z`AEkLz2b}5N2kZ!O8x1Z2){lJM5oA|1Fqa;Kx7W^#@d5Jhe&x^Cy1Tfe`K~3tvFKA z*(S7^=h~7oOuM2#He67sE=A1qxB9fVP{Y|MvsK3}P@$M1%g_lWUo}+jliPJhKe9+H zPN=K8MRGPB19(f zwf~&HXLIdYiT2*5Q)?^PANPdNf#U4xQ)3&QW|fwQ(~dw)G|=1cs-P48{iACjTBA`S zM-QLq_->llEFvV%V{T0DcZKN%3 ziil$yJyN;pxB5Wl!Hmik64O>Su9Af>j`NCEdEk7Sv*+&$hs%=YvJTWYgt=aBEp`|D z5?^|s_!E!(f}%HFX~JJ%pIBbc+wUjfcmBA47@^%mkLqnG6!W(GI}_FKat%-H=)`Vl zwLmwgp}az`RX=_#7sm3lywn$-s=#|qS1l&Z6!p4LgVDo)lEngQNF_BODsvJ_-P)(| zHgGJ*Wi8vlT?x6%XF>)YNH`d7ipEo}g(t+JtcjO-+5~TJJYW>zKkk`)93gdZk+>SH2OJwK^>=xl=;9gL}07gs$PyoT=G&&wgM zhm+RaIhgE`2wfSJWyMF8H4?IEObwO?!4x#biUpVD4K9uz5g3m?pJH^FJEGiL5anI* z;%L!{7~?SkFh6#hF6LnQzPoWRe$1vE?bmo`AfcC|o10S}hvk%@3i^`|vYHVuDp!Je zW0Yfj)*fU2Y(5;+&Yr4gQQ*je^A!4Gma`d&ug&?pI$Gm(vPTaHcBki-X~XCkz+my- zJyhy}%8bp8&~*+b7RIFktlaK;($g)*Q#@E#{-x5ZaK(n*+(f^V=8;9*w|fZalbrmk z9aKKzYVWq^w5d%(js^Y-)^ajEchkL=wELVZ-%*zOcjw_o#9Y;lq3~-qkLrN#HP)(Sz9-<6WL1h^s;H=68Qs-}Br6ei6CSa|&NquN99jLlKb=?>)Z8yl=Co8TA?n|Lom~8&cF1OOdN$8?(}J$*W@-WF(kyeMA{QWx znQd5j9@GSk>F`%1D4-s538;g!gVu`qW-0?`@)xh6E(|$6*!Ho0*c|eFy5vs%cr)y7Sgt@lvhz(wm}8Qk$)!7+QIj9Lya8t7M(1trbki+`i2c z?|hEB5RuYrTGe?LN;DwNuR^_s)0&5t5&~@fiA*y2`y{PC1@Z!#t(H(sLANlA*!l~b zm?wP^;u#+vb99hvEW^g&)J=L)Ru%?&7C=KAY79WHjUOfvRpei0&bI{}Rs~S>E@T=h zT(5c4SO_E@mF$WPgIv`1otWJLf3B@2`MHz6q=#AfG;HBKFm6dkRV5Qn zN-Mq-jV`a6U6?thdX_OVe^i^ny+p3>B>|_uSrFNQB!-$0{Ptf2R3uF@QXX`%#D2Xc z=~JwC!yFBaJ0E!&i;GujBbYC0iq>@SKT&64QD(;>h_RUnol;6CSto4{g3-sXC3Jt7 z+uHJ$l)8Ogndh}7N3u(Y-TZLLY|;aBkPsWWceXsqOjn_-S}Q>>9;EMZ-^rtxmF`cF z^t>z!I#=6XgR(;MrxJHucl1ZV$3E+)}y`SP~lZc^@gUo5mDBAwm`Jj4m zh-WQ#FA8H6H~(~Mj7Nd;75Gsv%B%ss09?{>#s{V4B1Ct@YY>#G{yHBk7Jh+Ir<7Mw zR)ut!Z(i)56S=VAPJ8%JaB6M}{Tx~8D7hf+{~}85GyC1CAmx1Q+pig63GQdqTN;X!U*V}wj?WvbTt#sLM3-8bc!2I<_WR{{I=Sd6;Gq6D~~ zj>wF_g6$C}4*D^^_1UBegX?-`i$7u1Y%=@`)bBg33EI$)}Any|lhc;tt;Pg1-kf!}V+Tuj^Nt0kW*n`|O3uAwgo z?ZmcoJAps9dTr~>`eu=HYM`u{y|dv2mSn}`z_H^avMsg;=O*c?Bq65AzkRqhkEuq%vz!BH(A&i;quiOPO0mU+Y>t| zc53ncI_MCdq)608L#m?mUw0U}huwC98TGm!Nq6v@O_;Hs$xK0~aFSbjEc&`rfI;Nu ztxzMOT01h&);L~V2iI@2T8M3Jm6+Kp_z60Ht@U4`TF~agv~r|Zh|v<{BSo^Wlfzih zKTk=|CvZefV?IACQ zL!`<0oGbu1!DDniUZ!znP`K7{x;v!>P2eoSVZ+ty#mk{tmBS7(O67_Xg9A2FE}6{6 zmx{V$yCRMjM{sdOCSK@zey+i$S({^8PQ}FDuNx!E;LJSz{`)@Rj!MO#W83IcB2#sy zI3{EX0Q2xs}P;NgC zK2|oSO~C=cwP*j`*zR{w{$oEXUe6xeVPBw#ss-yKX`S34?wngRe(D6>tCJI-uEwuP zqFF7Lkk^fAIX@MmpE1rzdV2o>m_CS+7%M{|ol1hi`@Ol_RJ)Dg)r@v~G`NQHlQ5JB z>L%V6&Bh2rZ*M8UsgQLzU~;bsVomX=iWEXx-Y9i!p(mi5S;uU|#pNPUh?TZ%CE(Sj z#Z6e$+Lm^Bp71@dl{Qy}zxledH)TI}5X(!~=jl+;QgAswq2c>$ssF+HkPR)kiqYdV zG*5vXN37ci1k6Jct-ieku^EjO+x~@yU4HS}8g0VTC9BXBmz|lE{~?S1=m{0N#ZhY# z#oo?jcDan69u-Mzn>f#2^C(3o9g?oiCg){7>duh>BiIjxN=bQ;#8XV!LF>pYHL`+t zufL|bOB0A!6;F-@D~@2wC0AJHs=2-CWmC!?C1$H>sjwp|*S~hH(hJ{f=L}O3BH%Ko zFFBNgEyg+jOnDq5Y+VGV{Hs`{w!7Ne;v0uYslc~A$0Xs9F_E;kT5w^xyw?H~J5)^a zPEAm{>^t2x3=Ul`jTDiUwZ;F*-n=PVq77XSr02^>+G-@!zi`_5EF+_@ifqy1xJXzb~kpx!Lzcf9Dl5dlh})PzvpbrPO>jPcs>p|mz=vxEif-=gw2t4l*7-h zZU$~%q(6!{c3?h5=m z%0|aV;4;;VhR2X=>~UI8K6arsJ!w?~FJ->588@=hQcl}dQ+29vkvE1nToV+ConELi z4L&<%`9WK=Kq}Tmw`)>^Ah^s8>(dX$+|q7#{F`&T%Wl}^+8(MC64~F~fGqHvhtoO) ziEoBBFwKM73!LoHq3tA>MVSi0xnLhe^D)w9a;8sA>j^`$2K8)|mtZb$oD;wO_0jPn zf$RonKqk_g;g~-+4o!(n(<~11(;qZXlfHMwhh+V?kDJ?U|4p_xBPFMRZu~?X29r04 zcSqq5m{WuN=P|l3#bCBUO@T^fNUkrO3G{6K-wAj+7ki^iYTV>8E^C0So;1~W`#vr) z(_97(PsE)<=Hq#16Qbaj$W!_pnW&Ba+vdxkA>Kj4e#Xx;r8n^Tf4Sw{c#B^iwjw8QZ# zgIQb_;}!h@9>R^i0dk_9^n|gIa1Y+#2}z{`b~~9JzVoNsK-!}}Jx}uLiSa15 zee(Ovc9fFc!RM$?=ByaQh0`6!7Nq*g74>+IU8y42bi)mCA8QOTyo=8ZF8jJH^bQ}3 zJas+51@ps;Bc_R|EBGh^hfO{@p)_W===DidPYakJ!KExs`OgX4e=blDm!T^yfwyKx zvqph+$M^%F&t|LksD$k1B?&xw`n8yAv-Y;@K#k)V33tQCQt|dbYf!(Jp+Oyl>9-}; z{jh7n)dLg+R;spyFy^_u5pU~a=HhdELeI|6X~w^t?eTxMvO4zgx({ZF)GT8uS^B)i zBKhzbMpZW5lYL0zSfQ%IMhnoBwQ%HT2dGM~@H8{`iPp^f@}g1jjk$64#TqUrFKH%B zZyVAcTY)j!O{)o-Lu;RzJ5D<-h58o6Buh#KGMRj!UW@#(zO;!x&XH}i8iXiG42WndwFwvhz0E(eke%6vSvaPUG_Hw#lLRw|IPG>adNOW#@OBO)3fR_wK_$to>& ze`1Zc*WtzK)Jd`s8s4DAC>Z5oUd(l8!}R>#jHI>h|17~ z9iaEfEBRWY{cvZi`768pjrND<;lv$!Mft4d{Sm6*aza$h!^)Y2RRhGiv)D&0Otnb~ zDe7K~0Aa?mY*03d8)P2Uoa>1kev4m~c#WCfOEop7j;jd6IQ8VxD_lAmbSTsfnrZ5^=`*oR&FZBaDA{IA$_Z!M9+H8X7ja4$?#sbhIJUSqPdo( zbBr`2*>VJ2$JrrMR2sY=N^*A0pO8yMD>|}pXI>)weJ?g875O6vcRx^=8*tG1nLFpIv9rkWX-{6d(PY;bbA^C=DkRI*@K+-fI@sgNuwU4(TuZekPY=0iieXQ$# zPwWMK^!r=piLGFf_S*maB^G_^+T?4R$wSPO#&x`kI#eakSh)3bp3lLuu45=AAAFih z=??L-PIxPpiFlUfmZ1?AHDetCTwmkm0$Eqm_ zwq5h6;km#ZMVPCd&|_Alykf&w`;mbwHEKPok`#~gKa|3R$eV>f&8KQ8-K~E2VvOE7 zfh%}D60wzy`6x`eS)G+u>gJhpb91JvF=HN$Bs>u}7gm_b+M;KLx2k-2w+I zf;zv5Kg#t>?GqKJ=y^rSHqq=nMZHK{TbA&lS{CY~ifmUnodpCBLAFT23&?j|7kMPC z5}LyVkldLx3~L zKamFr4;F)dv^AYnC9ycc66UQMoq>-ttmMp&< zoZNuH97=4qED@ZeHP*i-p?6sd8L4pP>gIwi?tk{i%r(BeX7ex+WHW#a!DhuM*|Ns2 zhp^42=}f?N)&AgI*zz^02B17 zywBEMZLV(v^(udgF;qhe=U6o5G?$E8j`w`E{pR~tm@gUfUs$C%v}Ym%p7&+34HU8T6ZdrWPCB^dTCMu1 zp((*d3BfVosbJ0w28*i*DvOwx(lt>`C@M2}g2hg@U5z%FXj0MqfESViCM}P-0Ve?Y z;I7jjr9`JCI?+;;d_cUjvE?`0QSSXub8O#ZqL4%E;oqsc{QLjVXw@^F%`gyM+US@l zTU8hu$VDs;G=N@9T!jav1_1}zlR-%Z(M*W{UntZZY16^+_0#5SWn|+wt%B;T?F?We z+2z7o%gpsVpR#Nzdb_#o^&|>XU$*n`J{5Err(LlCG*E6`BON?5orl*X`s}WR0tDy-mh4@cYSf zbYq~HslA(^V6slILi~-`EqS^8A6%mPVmis*voo@CvFcM(%vhK@O*k+H27Rb5Sj&af zYk2bb`e~^~_`aFJIYFgeNMaw%0ku(qtb6cDG(({8IXLKbz6fqQZaJqV2w!4)IHloW zfYT%VG(vt>;X!k1SHDo|^D{IbM5r0-c&{QBo+>&OLQ|@FfXX2a#V-W=U*tEpHdTfP zuveZ4i&0n5z#}zNKn{XlN>VC4URJ|vc@NR!EXm zOSgq)(?xYWq!Tz%*m!1UTU3#kuiML1s^F$h1vX;DNm}1}wvFx9Ngfg0s6s&+*oH5$ zEGJS&0zNFgyYLqVXWbu678x;C2Dk!)O$RI}{I@yB@4oWj`Vc*a6rwmq8j|nK%AU7i zLC{!=lB^SEI{|~$dGm4m6BF7thF;8p3kV3wa#TA>2v&d?zu^PjoX=E5`5FqX=0F7? zcPe7!UaIWAjwu9A`i2(&T9wb736jZJt8%= zcQ_Ognv0ls81m3jUxs84HE6or8IF@~*h`l=hap~K0y@F}rKP8~zLC0p#}v^CSB+EC zobC}41V!!vbp@3saD@RGuZyWv$V`4r!Y*p6kijQDWUmq@4!&F_lOAT#$6^M0N{vA4 zicw_i$w|_B@~&nObQeo8p)6j=F3~x9I0i}_OU4@NP9gfx2Aew_C;Nhc-79PVNI+EA zhsE2Cy8g&DE)xvJa+l5%NSA5pq4efWx{i7_O^xW72Z>BupVB%=Ir|UoQi87X2m*gM z%N+h5@>f%oUN@5+OnOzVU4&Trz{FX`8pTkhU!;y>zn`}cn6w*4*tUW76J=d}Bqq0- z=nejv_nV(t&oTwN-K)0_iZ0?kS3YmULszLj2JvoHwQhGNI|ZwKeTE4hn`$rSL}F&( z7FIuiU6fVMGjKCv)e*qJE$7K~WkgTrFQCJL0VAsny=aQJe$Pfm*w5atu7LuYx??b6 zX1r-0+l9wLHLk)>*n{{7NmJ$hG+DKMWVtKHToyFQPZ-*8X)QlnIPc!I>M8Kb1vh5* z<#+}EOtMQ`O7W0YQibe&KaSoEGyRJdOn@zZBGUG_%6O-1I3&FYsKa`SqWhXs$FeGv zhw&lX-7$B;u<;CdPL`_StY8gfs=O<@ML8R(o;A%e2Cz^ADBeSM6W+)xZYntp6k2`Z z6DLfrYJy+n=~o7R3p?wX zOU2+lyFrG>)$U}lgaQ1&e9c5(8#P201no8P$daQ;@m>GtWI*AwF6boqFp%9R;rtgg zX2Xsa9Y*vwBRz_?`)_TBY-HSb5xT%5f3Z^+ddA4ZezQ27FcDOObjKpLyGZU{Kn>)g z&g$~vJU4mCwkXxN;w?XKdUtEdw=RN2Ev3Ye96&9EfBH^noLJtRRj{+zjw!wd$qqE5 zd0hkhS~+;2{K=JV6Ta#HEI;|+rFc@o{~k@&va-lbpvli1{qS?P4IWDK>VusQQQl*o}IL^S-63pL5v{ilzHoDYtc97fJAc z03O4d*->44Bw=d@>D1nJLx!pySg)R}mY;q=_uXkIvW0dyZM#=r%ua52b#tMu$#|;n zdTTH|x|hdt);FZV=m0++^zyu|<&zgds)KmN zbCrv0hMOY8k=eGif4*7#VN$zXi?4q|Bk@N2n40qkHF(u2138UV@r~F5Z zbE6~eZt7IGQ0Nt~U{u}EW{Phm($WYifBH&ImJ<$>YZ3_TUM;(vOj!|hH7*jsrA-MBzXakSv)jme z7n%H>r~7*YmSOYm=mBrN|^ zW-qqnZcz|Y@)3vPN2KFq%5`D`!TmBm9-qk(#5TA0Jb)A_!NEBsRVp<7GKdWhVwQ0^eko)96SvtCk`_M z)H;C1mNHV33lVUe_NK;o3)qwWmw{9p0EZoEP>CTbcILupDpz4B&--f0*L~myPJ9IZ zbtGnP#!2PzXO~*eJJzkMBv0a@)#4B8V^mEY0YCa?q{X^*0GO<#zlmkiRxPp!zwdxn z7Ff7PM(Nq1HiIobkpTo>)bR4~n>`Stwc%%rf#xzOh#_nov5l1M`$HZ`Ced7L66Z#O zWCX?BY~Px%O}6c@mHwydXes2Dj!i9WJ5E*zx{07^s$17iLk$_m93!?c1hDn@}L1R5F>FS^O}eJXxnw2m;6 zM)z+H#D>A6gSG>sZ;@??Hqe6lf_}{&8NVa#oIf#RAw*~H zh%nTWx7I(FZsd>u3m;~J+2J!HV8ACp>klxzVWJ(#PF$+Y4CzCF7`wmUntK_IOblfx zMUa-mSmqAQr$&rPg^Il`=0@K>u?lmKTT;LV}ioJ;=$qWQe zmF=U(^xDO%%v?hu+?j?HjKy+!(koKHoX26ADF>yDTd9E-yMN(9o+w>wNR!dpV&fS> z)>*b>TMh6^;*u$B!x&GP;@el;X^N3P`5hC;W&c#C*(GTVc2P+Hs$k0KFq9xMY~~dN z>vt<4@2F8b+X@6OBnnXs$oCTACk~`@ORr_*N1%%Tu6XX^FVL1$UJTl0Kxp|7QeO11 zgR5Y3_W75tm06`r8zVZ;#b^z^fg1?1q(0HY1#K)#>#%g91P+y}AU4*bc^vjv8(cp} zKV=3BDz$C%ec&`AZo6Z4>L|Tkuup*d&{nj(IOQ*C4t(xwrS4>;vb%^cv_hnz6~7gv zEbQC(=6k>U#!O67iqCtOg_*7`??wmqFxO8o7;*HrjR5i}hM_%!;x(&Vxjlr;L$h{W zibr0_@jjUfk^;FsY`lK`;m>V%?!bJu&d=u@x9~B*s;@*75tg89$w?EUm>aE{rbS|~ zTGR~gdAW}u2u?a)JEpjaJOk2$@O;WgF|ruUV?bqQ)rOGW$w@Eh0?FqT`*r{_bXO2+ zRKDPq1PU)`7uQL*I$;VBvd?kC-LS+|ul^E28JXNv3JYwsHm)UI^#w9xgAoe7OSOiD zfR`Uq?Cbv#!#d_H(#A`f$l~JnqNq)MnzGZDsCg$tpE(cO7m1z}WghFQTCVDSyqRGm z$l3W`DG5Zf>EjdQaOEhQ@y7Z!`*{AfkOG}9T0uF>FYzHZfpIOA*0oHSPp{y0HiAjH z&wRW+8_>R6I2z;c%7nidVDw5dD&yS*k1h*P#uXwwGgb*r92$yKq_CsXbg%2TxOq-F7c5_PDr?a!CGjU&-kK>5UhT2?LzIvgsEfqifnr{J0C9vUhMzTW^@9RitA~5AfPWwMqSKB z+jcAL&sl6L=}{^mzxS@Bh>VILeU6n_+ZjQJAD(w+Km9m!ZD#R2l9t}RMwz*E`yTF` z{oV1_<~7wKbx)i=fsMp+{ZaFpOM_6`Y$R!KSF_3z@&vRd0cXil!2eg~2W+-s+$VTD zD+B;}Cm59s%!z7MX*>vu<@#&mVzYN1EA45I9!mmeM;I!DX0Nu5yE4*c4~hA`he55G zJhAO%NziBEG2doT2?_WMrey-Ja4sDg>_l^f$>^#Vg4L74M#~j6hP+mjR)Rx!{KuFY z)=hB4o^^g!&=V|Tr@Ny#{SVYJnE$UQd_62_%04pPXhMnYa4!GW7O_lt1M+E^fe2#H zME~Ia;2_{$HvIhIS&jU{r-W-T+KW@5cv&VR&=M)k#kiJtn2Sf8|s%Srk{=46{KS|U}66C5_Z4v$sYezAwm zH1#Z20%(Hw0b5$-XC*(5?Sw~q(T^j}*s*eD=i<9=(Ji-2cv4}lB3B&B)5(Luz%vVzK z%od#MQ2nRxv3G3~Yc7fL_Xn#spKQby8qoUOR5m4spy}n>DA6iG~K;;C*KM6FuR z3YsH*Vcm9Ud$JX~$(xpUxmoDA5{XciKkb*d0gZp{9TcY(_b<(`N=5m%FETW%(Kn;@ zyB=^rbluC;UN`&Qy+WPJ;rKu05`aM$m_A4nCPaw{R(BxbZ z)|q(uB4j!Q1C@#%?wIsOpzd229p`AZQ{Mw}%AtW!)FbT@Nd6`9`L`%C>l*lnicb|m$tvjl%LZ)srE-JVnG*?5B(h@ zICx6gqP@zA0e-SfQ9kDG=xG>dwgj^mQIgYnQ*h4Tpic&^ys03HUIv)GdE#Jm6#3C2 zsB)nPKDaDn8!;=nj;e8-0xIR$9Tvy&i?c$P+V#$*It||snIkdz;ds> zp0}DFa52IDf6>hXwY*Ru5I2?_%n;e88^w#q*CK(+p~nlrr6OJUHAF%*+k2%{Jt7m1 zA!V846SVX#BGf23RoEm8VYFg*)htcMpn^9#1SYV|&gTXyzHUfb@uv(3|frTcAcsc1~)9j}k zzl`>SzcuXxHKzz^?pZ`ksCmzl(H)Qka+e6k8(#x$2BDJlf!8vVhy-AIq4r2%;OU?M zr?3Bxl@Ux>S!SEyWKh_z6T+K%<_{JP-H)lwut8=2A=5I-0>$d@?HL=Pytdj&2TZ5u zmY|%%o8SEk?>H_pBwFE8XVyai@>R*` z?@z2_uYvZ`;yO80^3$>+T} z%_bhpAokOegv52pc()Ohz>J;UW1S?}E7qw3?_fq{#osA>PKA%raMN237^#6k0Z)qt zYnq;>>HdD6n}={>3J=wC5b;*jqQTOp@SG}plu4>0+>jSd114J0bbS$xoV@%|9o2r= zm0MWR^H~<45>Wk%=Mv)Wv1lGnfPloP!BT0WiMnY@?=gDCuh15*l_Fh18tiV zAy7=-eqD8{@|>FJSs;zRO8#`VC75VHRh;(T=Dg{40{q}1%Cw4XlF_qA5=BSrn6?lR$?CoP<(zH+Zf z)cd+s6k-@JuAG}?%mg+i=10v_S#*=!=F4EFS4v?ZZ$b_p=DuB1Fh5Lt++wF0LyO5y z?6WXN(^YMBtzn6k7lQ1V{0@QD1t{<4S4vAT8DOE`IJOKKYF=>B5lcjM95KT*0DY-N${s z9gu%V8-wv+(8msO3uOZ}%msO7!)lLXv(|B|cP@|^Qu*q20cUY9BPWY^mkvTQ{2WK_ z|7YAr+v{2TgP1jCU*ya%l~eO(8!Co(26j=nR90=J24Voj-%D3A+Z31?VCsLdipJC!SUZU9VI}h?#F#fjJI+!^rdoyXtx7L!# ze=%&aJo+pwf`2HtCM?D{Mn(ThG9h*ISa(mTd7sgQEx1bk?zB5qSm_G4M^VT!@Tw;_v zvco+;dcJ=Qvu}G;O%5!6vCEvOgUnCA@`xLNqNTyQi3bsp0^?w^n7s;HPF4mMDs0OVZ3_6fkB!Is)QrlmP zg>)|%0UI7E9W%eTcuTMjVPp7GU{7O;77f7eOr@}}0E(_q zZ7hH1lbNd8M*erpT(>|&jLG!Jg7m$XY>U5BKp2i}nq-~*8^d79>hmtk#1Q_S=I7GF zQ-aQ|X;X`D4+~(`SaqGok%VT#7-?@_*fnJgZnvv_SI1a@2(b&2VD`j1qkHO>g{%$Z z0A!|ADhS7B8;mYp?_n5WY>3*=deNbIA-B-Aw;$fuQ*y0JN*f2@C9;`p6u&a=_=!TH zCH;!0+T(N=ht70VKTF(_lHPIKwdiy zn(^~Wo?g|`K+-uW5z|Df6d{J|r;@^nw2=ZiEz-yp3Wj>z7J=cJbX?*qCEw^@hynGImh|pNQ5LpnmxIXBWhVsgc%)`^JE!nfP`Yrb zQx#!syV=^GZV2 zcMoyzarAn*^Z@(O4{vi0TjQwNZe9)Kqi#UTdM`4F z4wRfUn^fNerN_&`8GnpGlyQdbe@V%>TZ{CBTN&C795o=Eqs^wQm>!GSYi3I;%UiO( z{XGk22UwPB?4Y~k*GjWh(HsE9v(S!~7}#V6|E7QhB)OV+aWl0CIv#iaOJx0G-rgQo zf>_%@q!r=O#J-XmrH875mmnnF*w5)Lu!L+ z#`FEQQHC)^u&{mJ&V|S}5ENw;ExX*$qV%K(aiMTV(WSa6ll9Rk7XcX_W8S{1chHRmpxL$W1PG?v-w`8YyGG^oVOvZ0S41S0@ zZFTf!ozW?Mhw`-^1?~8G9SvoZjks7U7|$`Od$T4X86>+AEX~i11>GzK($-na@9j?t z-(7W`*)*??w~z_qfU;cdcj^O@G&w4BOSO}&ww7%)Upi6&A4oj{z#9qwVRq(QwfqWq zg(%|GV02Fw;b0QzTt?LjR^q7FP9%8lOVou5VlQzuiU7C<$fus5519|x#e-)S?`Ux} zY;ewn&ffk6x&`a24+C!0?_Y(~PU@I~-Y2(z;M4~RlWLTtt#PfSv}jm?ZFm}xq)YZa zV$JSA9*_D@yR<4L+>j8G(~7P7F8=7yrv=A%3#4Ij<*LfzsI1@m>O@l3E?SQJA8#&? zlJ#Z^bME6axvAWeyEHWjo0o(PTS%hKo;cx1K>Bl%zJhJlE)P|F4j_%rV-1aX3`vgP zt;>4eySO#F8fNo&zc}V*oX2~^U#TP)h6&iNzvXNoM%r`5TnjQrl0%Db+*SfhU>*95 zH4(vzHnllQxbYe@pgwl(yosDYFwA|ZQ9rI*)SQ@5OO6Noo!=KP{fy{Mh?B~&taM>X zXDu+Z_FuMV-Si>KkLm^d8T&K;?M$-JXxEt$LUWk?m3Vznlf>u}Wq3BuP*CqSB0zoALR3cGgh7;jG=1ws{=fAofqx{#ll zgd(zf*@_5GCo`A=-VX?YSu8^>K?%_!JR!ppT;?6?v@Ll$++*gS)QA{^q5Pdcx|#Gv zt%#O|=TetArMs%tNrEY80J5#)+I{M2xt|Z=bCi zu9Te$#Qqfd3$ZPcN;w5sGkP$_uXZq7$hx1%<9*!6XXGe^3L`|un+p|(YhKl093Fshl}#M}*(71(be zLX<9@-WbDO?x-Fnp+w*FYBm9Ai0Q=5F~A$6cJV;pM=xdw2MA@A!emz zf`J_QS(@3eOP2A+&%3a&EfsiK={I|ikl2p|72R^T?PU^Zp*cnu1_L4N9O0!B<-A~+ zANs;WD+JjY$o1pM)l+4P7q~#kg4WAwDPSGKAI!j%dviB9=sQR-&BadLV0!=_B3yaP zQ$4FD7j5R#o5xC1#8855KxA2aizMhV_yh#IP~)Sgwq{n?Tz1MOF6uh0qM0EP<23jp zS@Myc4+3tev+|3#1jm(nf+hF-w5vFX8EUb~O~_?GcCGOZ|ECx%9}oXYl&pn@EC}Jp zL{5Y_yIXI;1l&4cvs^rXOQ|*;vEmROl0jUWEe?>M!WQt~z5M2;oooOLQ;1sj!?0z(fe(A@qa6zv< z+Npx5FH-%W8d`xh+}C(@dPeFsguwf`|E&1`YQu>%iTuLi>>tcJ)%3{5_p96I{xE5$ zw@6WcI;dt#KR4vneeQ_qRz(30fE@Kp!&n1j;Dd@Wx$SZrt*KOxc7kx%?deKp5CP;J zmnd8uDfAlPBA-S_@Ox5<8eroucjPznf>fVTp=3U}u=dh0f6zmjT-x&D4RQNdJpnT7 zznCETOD?y{+Wyup2ySxon@kOlXv}Z6gduB3a&vC0?Q-BB-1mUb^DcWA>6e!M~`gGhK;x zWW^zODT62^4an~p&zZf4kjVp5o%c-<)$)SPo|gu;_(6mqUY!+9PrAQNCuOQ?8;EBK zf-I0syR>yLbGCbL(FMx$ODZC1C*>b!|0RM&kpnldbxuvY{#dzfP7uM{{}7ilO%w4i z=~6P43H(9DlMMLxh)arxRJ>OI=he3% zC=1|g(Z=J%y`n7FE|ny1+b!gS?PNQ;=1b4QF{s2n$l`Ui>Ga35YD1gy>&&&wk#J3{ z>kBsk{c-=vr+C5hgDTVqVDBCc=h+HJ4*SVlk(DT_bS5bY2QR)F|hEvnXwwY za;YZmFhqv4G=7h^o#lIDG_G}!hxqx7>@Ak^^^k4g_moib#ZkTH`UbaUe!|w(VWWx= z;4t^-)->4ojVP)k`nJL81Lh&^8^l153h31!_I#vkJ7zblDTQf6caxkRRSsG^1^X2e zF6wDku`Zp)gajg?cBuw1wDvu{HJ!5z006s8OKdx+FrP5d4AFwx;@S)PJA_A2y3^(Z zI^J)=oSyyJk!KTZ-He1@@WX(&>5Jnem91sjQPOsyXB9;QuG>CqIF?s^dG7!OT9-q8}1<@kC zD6I$WW|HC6x-OBEJ`!vZjfqqO@|G-01#Tx$$cB$Crk-$ds7ziIQ;wJvN^&VQVpJ$nf1Cjls7kv}CMEG+brpLeb*|W8W{piFiuCr2fM@k|HgTC3 zpyCVkb}(mvT*&h5hMwr2AA@i=n1wO_@ij&9()k^bbX(587F#L=cHwCC)H^;5b%GwI z4>v=HdRwv!3o4`QVO~zqN5M_>T2@Q>WPCchyW)}z=|LmYpv7qJ*?uz8ziL|XOM-5Y z%~*SJte}ERGF45L!PeQUN`#O}v~E)`7x-OL?JB?IW|qQsCP9=-Q04WH5-9r;Lt#Uy@J{D>5%82On+jS$DkY_PAq5Yp>2XJwd8SKR>K@9{9ZUpvveDX>)w=rHsJ3Vtr0|1N~5EO#h-1-6xe;@vhk$pX-VMt{jyFDnXSSz!U zxs#9-o;^Z$7fy#gk7#I^E(1eCm9H~TqFaD7wub)mIm!Lr5bJBd$dIf8yFDj|N`+_P zH3lUB@S(G0Xa4}7YzI&bJ*&_dvahfYN9~LfXG1L71@7t5cTalj<`!~XXNBi;mu+;K z?yES@J*%SNm|{x`C3m&&Bf#bV-<1g>j-!iEBEs*iv%qS_#W*uT{N}9QON+HQjy3mD zvXWE39Y>TH*qTAs8qKaViZ=;#eZr<5ia-?YF&JyDSUy46d&Qw{81@0KcGaHL{8z_> z6j-o&r03Vz?4()y2od5GCpY8uvN{gN#dUW~6f=9@OaazA@!0qQ(sW@jk#rUHi=gsZv@cVOVXzvJ6-y-yA#)dr-GYr6BTKlg-_ z&wOp1#*0bG`&r7?=}`aOS_hr^S*xWT{B?9eti)j=-p5@`v1Xg{e;xv6oE&z5cY`VVy37PVJ)!3w?{W1#N2~ca49c7J zdP1t?tcmG9x94)6 zL)0tud2d7YW$#rPGP81gBQ`S<@BD{S4`(=B7{SH|wkB{IpV8-$E1LZ*G#amieYd!L z8^~)L9<L@2xy%|Jh0Pm%gHvg$)>^RihP;%#InJY<R-8kW_ zW|iTAo-T!1ow!PbPl`Vxr#FZ(oi4?QDKpZ6vZl9FMc7v;2W{~{8!;JSudlxw>WMji&iE3VvT{?{8tD(&5SQiK08+rCF7^!!ejBZ($P z;7v70fKI$6#`Don6D6f*rg661O|hqXzYtgjM+hTughKn|-$Uqt*G>fh9n%phA}sm` z>b9n5&9*~4IRLz56Ii9GL6<9D8Jk3aqB$--udShsv7>c^;g8{cYsNiHS49vkekSPT z;!Gn>fK3F};)r9jCvLgStJyMAXfp24I0J>y;rsMvH?C+`OFwB%+icY;;?sy~NsV~D zJWcSsVlh{%T>E`f4S4_;sXx@MKpG0z2w9L8MKhLFJuI1JfyUaOP2ASHQ zU$^Q@rE}UQp%FmtYi*_4liY*h>;fdF{R*p+fLi&q;64k-Dr&N%0IFEal=1SH!{84D zhah~yQY&g|Lka)0jWQ^|*O-D=thpXa&;Xwx0001Gbn9ioH$5?#@2^u4n2>m$1GngV;;x{dXALV? zJdiLJ2N~}hHiqh1pkC+?X8Zw1D1V~AokR2aZHP6W!7TEy9IR)g@53-x=0cx$OU-u&F5u?Y$IoAXQi8jWJT z4IE{BnCiP~blUNEBY@YOq8I`j(CW-mfNN~|>`Y%mzzUb`(DYXZAywSDaLQBuebd8n z#c2_K#(!ZsE!-64ZFCmE8p2>e!Qpc!y10?1Ud|Q`=cI6B8dTAU{JLLAiccxz)osM} zdDi%fmFCc zs;ZU+P^bZ@7=RrDiY4qas*6Q{v2wO(oOingk7Ap5c~lm1J)xN)UG{}!wmE(Uan%3tDyEP^F= z|G5_I7=7~GQYRz@vibMv35VGFCQbp&TKB?X)ta8shwp zbNhb4kigqS0Ed8esV{XUA(r?wKO-!+8BfzRt}YX!$@)N)J%GG)DA|1Hx6ZI7 z>uPMJ7J}6-`T^8wUwCJ_IhI?-HpeZMP7Q$)#_hH0^#eF3@D)Pt&!kmyf8!a-)5iV` z$?rqIM*&H66B|m9t_PRs@INIsfha4dX7|?bFVSZ2J(6F+>`T!hnZNL$(_Yys;m=^6 zFyMMMXW;n*q$YnC=(Vl&4dRW7|0x?n6&(L)3FOfT-{keBtBF_f^T^Zy(}We*pZx_f z^FoNrb(lwdRsuv0uABgMP*rK;Dr z&Z66CUw@xHI&I3gmh+(jdbjOLhgBAA54KDZ$&_e# z(JvGTqnWNEraCz{j{3P%%4VsG@WQYS6X08P^bFdSlh-_~EWE*$OGDUoF-L9+7YJvc zZgt__sC)%{^h4GUg%;_&Q4Qkn zYv=+e(s$LE7n;Qh@mLD$DOC{6eo>aUlnHj|qup*l|GXOxj)ju}tm+nq)$HX3%@?DP z>SDhuKUX>-tXCjv>1AFopcw{BDZ$`aL+g~x740x(Ad zErc|-3CR>p8B@tZb>UbXfm1@*xteIg%L5=)W)3Rq7Vrd%UHnf5r3&^kdZ**yX>~ez z(r>*cR_f~nDR_);NG!1`KqZgf*5@LQnhbQXF$A_L&O`IX+`joS;BaI5)FH0MxHTKJvU^pIGb_tTiD{hLt(0Z)qx8$t-hyHrp8K-k2G%5&3fS z1}k2KdsDWY)l_!kQZ`-s$LNrdCr77EHh5F)|^rL=3-GVp4_l z%li0a)##maq(gr}B4o{1#*KMZY@nxjd*pk0xWoo!l|A1#a)ovat@}@M;{BP>_I9oh z4`Q~R{2+M(Wby`_k#bw2Gt?afWo5yHvd%t-~SNvEN13BSiGEN46IFD`Yq7|3NaV>=njkPV@jM!CxHf2D zX74z^T-hQYizzR2(ZXM1BfYi=IS%0e{uYAn_wf+vEeWr9Rxu}o9_l?9+Hab0&u(1K@1Ddk>#fd>q^1@EAizafD^vf|8z7+w51v*H>#AJlFeEN1zi- zCrw&Z@Rtay3@0Q~Y@8|5dSHN3+7P)Lg9dJg1lOua^+xFBK;nrW8Jpc2yK&iY*;p@8 znSK&C(G{Jfoc&Osu1oLZ%K=$*LZkYWq|K7R&(3}K6|3eXLu)BXZ{i_cB&83&xWD9? zg=Y=4QO=yz(do`!i*I~|0)A9+*Az;fW|0?6GKD60eOdRm^w-Kia6>h;`M5s$04rX8 ziVtdc&a8G^#ePC!B2;{uiZ{Sr1k8941doh~sUv;JGAp_KpNhPSp$PngK%65%wpm0_ z8D=b_sU+8s>umUsTJDkx@c`{ho%qYe`!<|pVYD|KsR+2h(uXP59SRhIJfW%53|TsZ z$AX4SyB4A_*O(h%s^pXDF~J!E{BYQGONdqUGLcDOnQQZk!H;79()N~TbH5P68hap& z{b0#NH4*LP%bNHO&_^MRRdTnTOu1w!6fH-cd*d`S~cr zO^`pT##Yf(K`mi0@`=-@!e7XZ)ok`YQpN?p7LWeJY(tHDV9UCh)C+g&B4zAv0+v{2 z;pLw7|1s*LsT84H66hK9C9W}M&et>SS7m}FX zxyujt4Wcln((C06BZ!ODud}cNX@4#`7g7|x!`&K4LCKan#Bu1{%N&#$9YS8RhaeD} z(EZH*Vksk?HXAfyjs4FnpEH(J_>39X$Gdu&$}3mORSrG`lFPRthJJ#e(Z?SSJL9q|r=oN9 zaR%N!a&C=Q)`&f=KI@T(o}TQ8pu{Kfun%16&_cx+jXixPNSg8jE3&sMaf3j~-sgCi z(oIHC$l%ECv^5$!K9UZLyF4)=^ZWn}o+J@aRfFRrqA!BMD|}UN^xF^`+$%e_2mq8$ zl#V@s`1{=rJhMtLRPWt@Js8&nJn}d5*Djia2liSQWpAEOKv6V82(A6HUDQjp=cvET zkAq~&@9!>(yDH>1>$j83QcedN<=kimvJDZFkw9DU2%OQNw}Iq43W$o*5wy}!RYQv8 zyEam%Qm36ITY(crDSvbw>)z;@-hZf7z%Nin7wMr~fWnOh_P3C<#t-2|@pGg|)$8eB zBhCOkrNGRJ*8`M+EWAvd>4Y^rJ#br_g4=l=0ROUe_*(Fv_7*ob{B5nk`BF3$0=dzK z_DDp=GRdbQz#Rh4Z9!FuxZ1e?JcSNl;S5(Lq&usW+%|c%OR~&06~rr+NT_wy^JFBC zi1dl(aw`Xc?8ykB#Z8z101jAI9L5e%MijAQ4Hu?f2ja9lUY={LpBUAG)Lg4F; zP?Wvl_0dDhOD{9*js%GJU`NNfQqGoaGP2wj(g?2kfWwUb)_y@?+XWTexA5jXBE}W} zxK)F7Dz(Hr0jNS(4NMTP^Ak8xHLY>tb{c-Y>aXWGSqn}L?g5igql>I2oj)U?6Dzk~ z7j7TzF+cX?FP!Z1rrL--9VBU%%4KXXc{J|Q;w-h zS+Qz=7=m{Q4$|aAHWm{QuNDbp=Afv!Y0-q2e-XG3^AhY*8|!Q?uF|#)lukY0WQ@bj zr(`lqH=3w;DrL?u$rAe>G|F+=j@8@-r5*hDk@*&N;V$^-HIHc_UZ;`&Ak^>Wfgt^G zq%p-plj1ysapwdbndpa08@Gb?+@nM(fT=etx@rtEel)4dNfID=o#A@hd3lT<~dd}jUhiB>sqKX7*9#Z4OG1n>9e8~CPjz#-G1rXIOHGs&7{4c^Je zGL)P%KH$)pUcgmoPg_vh@u(P%gGM#b5WvBAUx>k0@gt2B0b{nKNEzx-`wed$a);n6 zj-(02%m7$Gr@sYfXvZt31Sdd!yw#t5vL2(eDCdGGNUn>xA9`0o4~vkB>60^2bq`an z?anu~M>N3#NydHo)a*^FGX)Q8etApmq1QN)J+736LJF#mdgklGhz?2Rd#qOaqGP<) z=Gis#sJS9Umke=e*wt@q1JL=MefizU+r3MCQ?%Gr4ke)YV%~D8Qz128ig@{9<(qF~ zz7pov|J_B=J;L4&#;r>UZ^Vz{UqSfriyrw)fP2&Jt?)kgTxWaz1BPlicK_HQ`8*p< z>WoWL?b|8N=BZx=x8@vQZplvePJ0U2fLu%f>V|=vhcsXJ?F|`qv>A-x354YkoTbWB z-fJoJ1b1gAAJBC;WO6}N4h$Y31{98O%|gb_>btCRO;;nuH3jK2l# zKSgv}5y2PRfdVpXv=Bm=Um(YjWh#o}V=LG#1K^##h+Z{m_=(VH0Rdd(^|nk! z6QFsDshR{sT|HXQCiOqPoMf~_r6q&24z(NAq96rvkN~+0JX{+hN5??GSe&*MiWTu< zb~_LcW4Ce1C=1Ncp)Y)!am>kr{q?qx_SM3wqCZh?k>+CuQfh;o8h;N1z|3!p;oGz- z5ZoS0`b)eFodcTdA1YON(I|ACG1M}`fv~pKUJPT2~Qp8s#Zyd zHS;c5>3w`|q97_!unidEERE)7IM8Y~7_Ph*7?l$V1<}Oc9^>?x6f? zZ24U*z743ht^IZ~S;GXqGNLAbL)mxQ-i$xHwbW}+Nc49h`}skmMW6&)s^f%Sg8t~a zYlzz@1`At%%tM5r&eQlWyzXFE2~)$i=>Nbf{B&r~c`aqs^E?A`a~z>#t(eKf>rkOg z+VQv-DAR2LQP{4C@>>YE7HgVB9aF8>UNz3LysS!*BS_~jt*)zL;6zd=$%T!RpYC%t zm!3mnhhX>Aqm->`Yho06avL9Yh?noj7Y#aXl4Lqg9nX)P!(b*~M>Fn-VX=$q>Y(V6 ziMAf!pDms+(Jm~-Y*huaR3~gHuPKE4{r)3v0tIVnrqB^vpfYk>9=g0+<-nU^kYkYp z+`Cq;)}%uH_>S|qPVZ6<&*|)5R$18$fPyplN%_U_Kmv^bR5!JtU+Tzb^?{MVUqfzf|;b7B}!;C~g&K@t~jJ-9JyP9X%Lim2af_K($ zUazh8>sMxXgFYa_uoE8#x-nc8J4{|#PA*(+BP(FO`#HAIz8?3Ne<;*xGr`X06nRHP zM!+P8aqXwMro9KbYDgNE@XqK~oyXdaDu@%N+o(-3`rCF#f+f2$ZKO(zWEjX-zDUb` z`@`z;yk-rB3_e|vK#4KUb-dd9M=^kpbo1!U+k_Tldi8{j*d)D5F^(%>xaubJjJ3{f zE%J2GJ=owOuD}=v9o$U^%eB`N=G%1|IDo0u$HWc>OWj(R#U}Q(oeFRtjKbUq`vR?w zb!lkg_XhaM;uLvA*WtBAF2nsehS>3#c+00YJ#qSPyd`4%zd^OL2Vix0WTwfHa{4%X z!OEl++R|mHv@yj##EsXzgK5PynYe;HQ zTk>Nv%b+9zPmTTt!OzqoV;9Jvb)BWVhh3p=LhFN_Eb)zivFxXf1K2@K0N1)TP!w-R zR}uU1ivhKatbmCNC%ghT(?&RX2cn%ccl6qmPh6)P?1!|7`4wW}X{bi2gJZ>Vx^D}Y zY1!O;YA`t$_LrVH|0&t6`o|0*o4~sW4#=g$^Q+Uz*yOzr`v+vvRpM3;59g1JinQ*v znup&|NcaHmUNlL<>=RB>XfpDt3(k^)B=R66jM5diQp9aY{G`}@?1v08&bdhVoLhXIq?MukacuD<27Tm5AfAZ&XJ}I{C0?Mcmcwf6gRhvgTyI5iWK-b6 zyplMq1;wAk{k?~nwMiUurf1GUP&Z0X(TyM9zJOSePjXnNax-bCBH3g1IgN)9EO~W= zj{-KjBigPiZ)hxnuYX#3$W~!4wgxD6?bm~8!Wuda_SmQrc#d6&(S?w8R2J$3E%jOq zR5QfCbZ~uw2vIF-+v$B#+#x144tjUpVpDI)C+ zyn`Bb#V8>zsBCEhG2@|K@0m9K+k`N7 zwgpH-_aP*Ti!n?0SQuRVpqQj4QZ8d|kg^ZDz`uXml?h*zHF?QZCSp=V;?PuJZ141F}0FU!~of zwGxJsN{H-`YM-7oYh3=|Bx%rS^zLl7##XH+$*2N`S5Fbeu!d>wAvJ2<@Zc?l)-u4u zB4dS6?u@qYY@!e&6Q0P(fdgfNdzu{}mRVN7=v8miF5!Qu(Sf5htfKvAJXSL_tjQbU zZKDSe`ojzW650#D2mNlnBT_VIF0#0ljveg=dZDpj4t3UK<)*8W7RPlu)tXyRc%qN4 z0O1S4$XRM>t;ZG|n4<5N4O>;7UNLkT=AJzn^KbI7*38jSG`1=Jb zyRgRn4b8h^Y0wE}*u1GIWzD>FBY32l*@}(l1K$dijP=DMRfmWUeRj<1%Y7n(kX7H{ zSzZLvRXm$4kzbo<_d@{QG|HbR)vl#Mdow_9OSR6`oT}77sV*l2#Dh^5#eqlmtDgh; zcQxJ{viJJ*SP8KQfy$ew!fL^o79;A^dSsd~5qn8irJ2l!(|iV*>m4Q{w&VEI@9QR2 zH4~#1W1{Mo7NWPM-%FxE@eiJ#;RmiefA%In%S-uKe|ft6h3AD86vAe(_CB*HTcN!h z+&r*&dZ5bU^jdK=4!LS9%54esKAQfwCW@_ZnC2QEN&l(DH{ZcEvg7hiF`_zM*dw>a z1|2;5n{k4Q;12WVwFBKUnTR&87aCPF1-*s-~ei3v-8S`)PP0aD~qFyzSK+>lw>>L{*@nBDF3dwuC;a--Ol&E$vGgA@=|GoD| z3SQ`F6;%7uzZ9N;210%7fK}*|G9wF3M?PR_=`uCrD!m$Oj;ZED>BAI5PBXpt6qAm5 z%XSl>aut-WLE-VawJG5Te051P7Ev5?>U5N&x`lIb7gitBS5kGBW4HS9RBg6l!e%gw z3RHN<#L6Idj_kLg$ri zFAqK%TfaiTlwmbQwm|nZJo8)`fDNc0UURKjX8HxJPh%qyZ;3NUJiPIyOJpDHD$6yb z*=;>s*31kyDAc^_iL9yI zyp{GJ$dzW=<>y4#*tK_=a%$`x`vokeUz{IP;9iFelgySC7)Nz2{{JPZCn^HiRs0O8 zKerP|wXVaZ=Hgof7h}9Qz`kVMtF_RyBbZ?tt>e%KFQ`Kb z1XArQQxZj($c!@WfmozqQYbf-&OHZ~@zm)NXo{+4g*gFB`pK0|MCip>=(?qasIBRD z(&&&pL+7XXLF{7Mx83 zu3C#Sn?ijLroXMpqN`ixIfjSQf9i1!_wY?@xZIVS1eGx#z~H}Z%$u{s6#B~~CU`rh z``Zxv%dfkWB7)e@2N_r}^1Q$Wua{NhN3c`a1GL~E?@`(xk*Ka^a=QqJA`x#!pw$_| z(d?pTtRO)N+G7HGFu;C?I~pgIx}C4~O=-6ageifBw469RZQ@#0O}k^_G!t1v=cxu8BbU{+j44JVElpv)Did!d8xcq zHP`Vk`x@ptR?*xaT!BQrmGKWaAd5R=oHTQmZ(mx?r`{ z9N&)#(oK0hbYeakJ2kj!nVJi>3x<7X(>w+pXn1%q1;z1l^BhJlN+)H1{cl%txz1#;q=#z)yAT2xA)$W)!PTOjQ(V2Hc7^VeB~G{LT&?}@mi%aR8f;A4 za+z>$aA}g>lz2?UW+NB)vdzT-s84!9ifi`Y%#<&9GEcx%SOAcChWE#9edEf^-8B3l zz89@6^*x}SCwB}3lh+&qzZIeBpDKk{znCrqgZn)=KYI-jPW%bDk~A8QiAp{;dqH@{ z))gR$I90*l0gFo4LqTK+;=p@kEMX)@ z5?;&yNo!oEP1-ILEjVjq?q6Z9Ls3?)MPtsWGkUtrn?wO_{;VL3ff#cFYRc4Glf-#y zytpPU*)9OmfYbr>>FDC_=eBAxUnVi}v8tc_2Iyc?>NQ4^G;cKG z0%aJ>1>wl1^Nf@LjtZ{o?FblC9D;HGuLUD~P$DcFYx z;0!Ma4K~09;z3V z(@k-%729r-GI|y7PY_^6AY(3mb>s1pLj{{0El1d4wL&m^IaftuVsf*QZu(f{Q1I5W zrLU>@LvUL3F9Yn~kKg0vaB41N_-O4wOP#<*N@kl7&%Xe{8Z0qy2e+9Bty1si5e9c@ zP7HoUAI~KI&LniUnzTo`wNw(B$senu#1l$k@-CSdJAbQ-QCIiM7_bOV(9ZnH1dsW4 z@l}O?S4*dRuzm#DzCA5d=E9r+Zus<>gposFlgQCi|O6^WsKS4vQ@xeanNUOAh*;e9mwGqS1=@ z)I3IAE;B!v{pm&Y${5|7e}BQfYlo~@R0prQJr}%pYBp!kR`1S8$Rb~TksYKgO8XuG zzy4Q2I@uTQmP=SjyJUU|N4?r{$834+ms%kQ!{TWiQaVTjr`kQ2c<||Ax_Lj*vr0h> zqXz@Me3G0K*d+RN(q#Hg%^@KF6YV3~%~E*1iy@IJ)zP@Z65OXv*$^%l^hZ&EWhmVi zxXPqY6vbKh9APN- zo~U59bY3%@(!mtNEa^subsmamh2;na<86LQI(JRJ>|3vmoDj`gY6Kaw@f=CK8A3+fn|*19-ycw02!}<8N}zCi z5Ij@s>6`~yDK3a>5z&t`*wT!I8}H_2T?kc|WYS>oYGV3Dj;)74qTS!N@($zdL_H=- z@Sh_&0C@Sx?5p~Ei09DW;&BYgv1Jvl5|B>qe$?`ng4lZLMv?bcQHJpt99URMqO7yq zc7xY*3NZ5Aw((^@_YSSD8u=j@2N+aP{+C+5Q$b1cZ&ngm;(Wxt88hj0;4+AfU7c^; ze^kql{7OlF<^fR4=X=gnc!|$zg(?C_=YwD^QM)HW$GDGt#+yp+<84dsp>!|i0iTWA zqddOPHMPFEaSerZ$P~JdM5{0rz#s0AL%$iwd_Fe_RZlkrySdMi&TgqmyR)Fu54BO2 zchFqx1Okg}jy?S;1E04bVnxx>xu*}T)=|pFT*Nj73k-GclmZApQ}q8$q!B>X4O($P z4X**#dcJ}FcCxUL$iA&$CB5z9YHu2{Rg_lwoZv}M4^4cUeS*DlC=p)2pm}H1_su?dmfHB z-=;*i+$}!sZ7Wc!kJU(QbW;HD7F5FZKl&5yg~(?KIU!%DP>RfP%&0~99Z6ky4#g%b zSaZY=y%>Hv*jT&_ET|^zFM^r2ugsAu)kfL*}9U`!cHdFktdK664Q&;^v zxQbsS zvjO~@247(f(Fsv4R9p(=ddMp;1D}Zl)uIIDU7V85b6{|Wr({~n;iF=F`f`O#9%Bis zoZ)Rc807z{js#nXmX7dBPhQPYBV3r1rOHY>pap(u1oB1~edmmJ33!@s2k=^wr;$Dp zA;lGV4y3D<9<1~3K$PN8RM9el7I`bLBcNa#ni96ogOjFcZ zYs;1Kn%Ajg$z+5GJH)S-%z~VKLK|=i3HE7)5_P(A=x-Q13a=P-zPd<}q7ytBlS;bp z%aiz$MB2b4jVh}P^(3n#%~Wzy-|fXrPdX;^COOKu;V%?E@F*(HVO?3+4Zq5vEN||z zvB~p;F;Z1f65sFy^eyQx=tUmA`IsymV`TDS3O6e7dI#{Q42%(J3)h5t?S5YFO?r9w z*pRukj}}7*{HOvBYW>a1(Hqt#yeR$(Lu>^nxJC2uVo)GBsynumtbe%Do+m-(_FS>y zN{f>-TsWR(S2mu#S#lT_i@e9_ItHueq7?H=RUL79@?)x1)DtW zhb8;+$SXc(jhF#DbPJMucz>5EVC6SS)AFy(wf)8RC*~NMAYbEdUdD z5&3tlPrC7I5Tyy{E_EdJOETaPN(tY3CAqn7qrZ-g6ySOcc&hW>mhOC;tpaMtRRyd_ z9ViI5n$U8`^sdv-9pP;AFWw;I-T5^(*C2#rm(Exx`;3y174_+SBb`T+*nK3B5M`s&|6LRVO~)2wyXF&%fIq9ReEA>Kl8qg9 z=-`t3CA*pZ+tx~J#Of?ZRr1Nng{jF-iWK(?4Cl%IZUuz5R8 zc%a!@bpkq7pfY%k6+`dViZMRG*e=vF?Ia?S1LQqLLXG<)vHahsQ_qi zf)o6YeDNkDnqRFqWg2`ao`q%X5qR}`5#2y#WC)RW!lvqd2mTJ|!q)-V9E+F8(bmoS zu)XP9^u5*t-)_$?v}aru+F^k37dQE@nooe5(Uds5*@(&8tE^8Ol#qB=NiIQdY}K8UJW{dJ(Wb1r?`07P8W%=9$Q^ z`tlBRZR5d+XjbmU;6sV&o;azxxl2?7EE&GOyO|@(_?!R4kS9}4ZHJ8 z4DQSk8_;dOWe|hY+X6H9h~yG48HswszbWMW2)}Q;2Ac;5JBme%d|62mw)dDMr+GjE zm0FtwYkIyg%a?ETRAwVgX!fHKp|pm(+4hj?n$ zn-1Uld*rWgH99Fa48_yakr-=gq!`TJo?_Z%{H3Y9tl7d{@a~rwJv~sa1vk_#UcJTn zYydqRdR0kKw0Po4M%%a!`1fBam9vv2*#ngb>tYWHuuDswS_YX$lIj52@i)_IZL!Lu z9}KeXb$NIXCFhhGXPC!XRKqGWRN4=)6)ymVBZnDHH{Ygpd3m1>LW@Y!<43~mbN=3oGd zZ$_~k>~deGrwKWCML>MZ>Q{R;CBx=Zvfsfq?b<6IA79sZ0rWN2b6~w-A_aOkP%k={ z`hHSZD&!DL{^*1L2WkEG{IX4Ck}Xs8_LC1;*>SF!k_o6Az2AFqy(*XaW zgMXdxPJ^F;^=l_PCia6b+K5uQgD2e6Y~LTURHgJz%yTGv&?Umv(ux3L-vXhrkzmlH2 zX1ZttWb4=I~GUoN~x% z3Aw!;61Qglu7?zv9p`SA&VusCTQkJRpWlTYAz)oB27c%<*pxS-(Ks2at=B}ykJN#DXqAcc|Wh%?>N@2u01p{<2byJTfu_%l~$ z=u)N^42GweAgH~4ew?22(A~N>LV%Q;QC6#+Qm&WW2Y|%sqizxbAmYTi)A1wf8Xux% z8JMSyZvzxe91ioE&*LnSp0ZY;n)5Y2oSV(8CdSAcw-kIex$%#7gtK*ev6R$WDhR;j z(mP@6yLBc$lU1P{l|`A_fOoXD0ad73tR26K3#DBqS1(;C9NJF{zD6ZKY}AfWa&bNn zXl`()K<3u$3JlI0ct+U72R&Jp^a-_CqVd0d=$t zj7vs*9)-(1i(C|*2q9%r;De$m5NSh^33t>J=86{E=sNyX9WsFUiaV5)^^H>ap1$V@ z@?vtOmi%(YHHYSPY_{OF!%!PzI3U^uO7w1h{n;klB=!X640<%rC!N3%0y+t3FD#30 zg*v?9i&`~!XMRq-zlJDHhOm7d`>ti-O?`T?2m*jqNnDJmLfZb~4tBQQQS9dmYlqs}U zyiL>LOMp;wI^RoMo=zO)?~y@n;}i{(t{TI8f$c^x$n~FzB)k@(9{i`}g;3IblF~^h zz;_blvm9BdttoJw7H&)wnnuAl`7mSVu%i7XTY&$MtBPPoCI_15cHjGU;<*nB6O}9d zK#)2P5&D4F$&-ru+@FXShXY%lcwB!ydf*3DMLMbnwB48L9iX22>^=_=PT~+%8Qx(< z--{Oo!J1QlLh5!Jkql0qrg4A|ok+(%V>d=X7guLLbw@k2&^c&${)vU~ftJX{t$%P1BOh&jO{N>(y~#xGZGx0`U2;BITgX|Wg)^vA&wgi53XlW(Qu=OL z6bHk6p2@CnG`bg>if8!kbOwwXXc}!HetE7^5;B#lc>e(&fnP4iA```#+-$2`1!BJ` zp$u(foU!!rYCWp{tg53O9B3}nL^%!qnQ-{#3{OybD@7*$YQ|-(IkjUk3?AacW*+%d;TBTUl!@gJ;YyXdHVx6yz zK*O6ku9-e5e7$LYlXt+~VLrcB6iOz-M#!y`yfKHweD-KO)`(Tk2+lQNQw}03slE6U z*iTQxQ;H-*EI5)w%!A&fETAoymScJK&!+m{T)KMK6EE%JcKuGENQT~7g30p}M~RSQ zlAuVSkoL!?I4@4^au->~83fENgZV+_j-F|j+r(9^BTwxa&7`iixLh@F$28v^a;IaG z5K$&FvA!BO(!m?#Gt10TgShZ4vn2W7P6?CPs(zI0yXu=j;B*`m#PrFzz?B#Zib@Q@ zTZiU*?Ua7Fiu+_pwK-=*h{b9?72U#2C;Fg2Ee|p+o7_ zuTJx$I2yR%+7QI|7gprb!EIy>8MXV=&(E^!hXCNTZ-I)r%eg{bK7SbDjvju5)x0X z!8r}WRHPjUU0b}VU-Y#Gm<7NMWM?{t3L>A@TXDER-G;5mga_v4OSK9Br_RDWGsu3S54>O0&%*$}w<9S* zb20Kt(0kVJAHZ#RjAEXEuw)aLmxm4FCxh*AhWJ!1ad9Ss^lw0=gR)jtF!vGid*3!g862~%+7NS{nChc{=bHIMn2bzk^a3|-R)(I%*; z9P@~pF$M)g5vAIQjG4R?h8Pk2!&4qU_?806EkBhK9)4{uNbkuX6%t-2EL%6C%=z75 z;kE)HuIh0ky)N-OLJ`&hD6(xg5eAo+!v6+H2R|odv8;m>zvNUk_@s1$WBm{g%7Sc>Nq*x;=j&HN!`csU0i;vf zK}b5yruD4=qe1%Y2}Belr2~uw2*eHcXx)>mV(+d8GQP(4m9B%F=&c9R;de|Mi6lI3 z_e^^fZ%=-OkBDrkfz`)@Y98wmF9P#e#@#x>V+hCN(QP~*eHh38dz=s~A%V#nj5Q;r zL|+5yvWP}9TNf;LySY&0Yg4t&(nf(a*ufVWV5_A%6bDv{+c+4sa}%YqC1(w(p51{7 zh<29Wfy!)ANK-(CseDt-rCYE>#$({gKg^6J- zomKI;Psar|iaE}JnKL@jfTdzmwO%;wg?-CU_;cC(>Q)y&+UyAeTd%kzmdY6aua0>1 zSYSJg;hvz4+)7KT(EqLeFgFvibq5$2rJYVQt2prTyXpu!+^9M9ppRsBHi*UF?SZh| zR$T{HH=VmZnYfx^pQkj%Wn91vwQv|}i!rHp4MI{z^41f9bPC{TJBL~l(Dj4ms)|XEgF_^ zn7Eyst8TFERMzZyRFYJKYOUnCk%Px8WYH11o;Z_LcuDF)8RvKK*fO4=08Km*UUgQy zhahYVtaRlpv=xpnqQvaAljwaUcjPV%W*~gQ6s+?o|F>fKBK?Qgjc&wARGJfJhX@FrKV1uey@LwL7{0M#jgge06&eoQ z-@-TV=e2GX{_oFfy|qH1ktqMuj?)z&k7bitcA0_8TD(S4$L(gxnx@v-LPrJs*_l42 z7VdFo@R8C*r&Z(qxJT{uYGxD;HmWt2bL*p%#JmKmtx$M zD7t*4g6L8tFRZxfZ0uG@!NpV7*7;( za>TuIZ+{lCJ$97s2rNdW1>NaszPIS&LYWd;iq3Odl6R9${Rg4inmex7+*9oNwrG zJ7I8NQcE2ZR+1^d^ZGKU$d$gb??R1WCSRdEZbh7|T1^ZQtBy_jPj`J0h^Rg0aF@rK zCFl=iTJd~{?&<+c^dWC3h~Tpv|sDG%DyVVBrropR`W{FmYxbnbJ4l z@h~XP-*3%Q9)MZfbYjZD_$+0^ze8u`UVAGP`rsq2DF|Hxvaq>P`bteNtn#3d+ z-J4U3s|6b$j#XZ-^#-up(X0z*Uh06*mhp{9*9~cgUrjjiO`wW=;sYVR>*TJBsdDPc zRX+>YeSfOBOOc?T%BK?IUAlpxb%k*N*EGCSZR+74^aZ2l2rBs_Z4o~6UbJHSMxEvb z)~rf8*H=kSQP91yxEbAS1YC%>yV8fqeg5N(1bfF6yKd8`g9G=gJp7b$4q)bh^1N^ioUQZsNC0J4>4I zc<#&D^R>EU%a?lTA z5NEX9JAFvSN4bsxc&sikXaGBBH#u605Gg_68LvVACXY8hcVgh=kDE60&Z}JRu#zqpHKI@lKY31z!{o&Y_lc6W}Ct z4Up*#{QfBDy{|iOtoIhdH^EuA176b(5*hdPZ_P?6v7P*;ty*nT*-@;fzZUVw*69*k z?RElwM!%$`Ny)xK=hW`Z1csFfL|z@rhQ&NP@`q!+K~O&}{%xPtE--CeOqQG9f!u!s zL*!NP@XP=Kl>ZhO@=GchurTy3*f0*Nte)`FzbG?*zvoAd5k}lMqOT^=lh$KJDc%&4|!-2+ls*K*TuxVQ1U%u zc2Fxbp##Pouc-Jw8(`3YbDsMAtAp1EG(7p`LLz-?pKH2D8g6!6pxCKRxpVYW>K;Wz zlhpAg)6|5YA{>Wn7NaM}Fg|zK@c*AOzM+4Z_S7JL4!eC`X0h$v(SA*1KO7Z^EU_XM zqqMwCMDyaqOxuMF6!3g~N_tweAd%#O_;d7#oXG;f>yUyr0CgK2xXAlY0?w;b6>Rr^ zrJ%C$qKvrui&PBu8(T03!!awhh3emt^CU)WCQjs*jnXQ{=b`>S(JC3TTRzW;9-yP@ zoGr1j)}mvgqVfc$Tt6jiyH<0M--H?F|NLq&ESnmhVMSf003)R3Dw4;|rpUwVDX$na zy57p5c-^e~V)TS+0`(yM4fpIt1q5GL$MH~+%WroQ$A=q>m?c(h642@{G@N?lPS*jS zQ=epmX2c53Dt-r2V~`AzKiu6V#~&7QOpOcJ1H(DbX}*9%{WPy|dFdzQhg@(LK+H^9 z1LqOY&7DgBYMycG%|aRy2c9|t?1N}d1=}Hx>^BzaFA`R;2gLEsgqwn`|EaZEm@wb1 z1-h@<46g+A{?#PDhZ-LD_K@cZR3{}C4=H)e4ko=E>ESMR-)7sgcZWj2TLw0no4W_h zd}~lv=A&efF2>9u#YUxOZBo6koSTM;bT$EAr?M=Uk#GOb(9Yz&659F20qOsOs$;kS zslZ#m}1In`-%U`FSF}_-1xgTxm3>;^<-YPAGbvzETcO1dfvy5lK8J z`I>A*m8rh3AD|1+=%_}?(Hp_CmSfd1+s&s{o=Wf_5df`js1HL{B#iy-n4~!$9 zOKG?QKS3Dp$nUoYAm@2JvgtvHD?g5LI*`A0bCRNUoR2FHp24@;_U73f1X56|!R$CN z0-Jm2!i%YDLEjnLhyHlV(=zrJ0JqaxQq%gnAn164In=ATYK|XFf3}pbC6vDa_z^9IzX%jEz^}fWx}5{fLX$*r zZf1yXb>0fyQCK}%|J&wgobx6_Y%R6mUX{N-b4NW3-W(>2Xun#W8;$lo8Pqp|=wFnF zfc!(c=^GDS#LY1bX3O}faD@>@A1O4NvMx7ac`Wy8C$#k}K7i=JJ0tV8U&-l)w9{f% zzsy15>)q_?r;vJ$a~()Omr?i=DlVT4kpCA?nh(CF4~@`Td;0+NwvrSzp!tSbhhN5; z&O|eQsx1jAF9KCQMP{k7XXE`hfyesyVn{ELcUq<&bX&2rjJV1JJtJmmNO*{`;R(9*S^} z8VX+0@Pu>!`Xrc#n zx2Ds*XmwH^t;5`ecVl5GkOjlvg*97Z+Ra_LW9F@`>!FA`DX?NweQPqjr}_CY2=1mO zsMPsG^Io)E#}S4B42f9(twB?3LrQNat{7%nXwH)5P7P1pII{QrYV<#m=c&nn-X|si zJrR{-#)6F{_Rs%0s(h1~@~Qpvqy!20F@agT5k)-QYek!K$~MQ%Y5!Ouw$afkS4`D> zBv==!aAZOdaKJl{3;JHw1V(visuC*^XwS|QHeA1sz*E*O2U82sA6Sr9ze6yC9tqo} zr+E_v4u3w9^(Zy*ADKSe<&xTIldW*-#dYABTZUCbT~bY8&w{)j=Zx{Y+00BkV`V+`<<3Zm1$<@LG zz9+-wwkBg^*K#P+iTR{j64)N9q|5O*t%l3$_-1c~x*7taK1gdg?VYAL!>eBoBJZwC zA3DfVVHqfTSs_H{GkkM@FicP|~442@9lh3|ff7a$KVC z?C*6)HLFJtTD6$N9O{%RTS4Oh`(KT-i6Nk(L89CWJQedu3~LBHjCr%N)$}7U{Pf|y z5%64ci}C_z2nmdrdORFC>;zLWq0 ziPmjc=>!XgR88o>GBMAv;Qf$$&wPTdCLwhwhhxRmWp4JNQEg@WfT;Gb*gsV?sfW`3 zTrsDZH?hTR!ian;TI}TUd>fdW0Ymyu2#JnQ>ZX>xDssNjfOA#x(pAWEYH0`gY(tZ~ zu9VEugoF^B6?CxU^upU_j$rj$ge+IboXIMS+S1m0K@edzvID>sOyE1WV#W^rvHbBB+)Z@MD>vsTp zYh*N#lUq8}_kREDVwQdQp< zUkpG#_FmaK%uIe?UE3r_kxgLYJEauY4X)ymO<=LD-~%OcY3eWLho<9ye|6=5D@wzD z-U6E8wcL#%cqeZGIA=I_N-Jq( zWKp0CJD#yuOU>xR#ZzL6=p5btNV)0&zQRlZl$T&3_k~e`j|aN=m-^_K12q>gi!M z61LwX41kj>Xgf1fx8lk_OLT*DZDH8O&I@o40GYn4>d#O@Aw5luOq66GecXwb?XwAdPfX!)fLY_uvxj2Y>^A01 zYkF|uX;dK5{^n1FF%p^^GshC*5fO2Vcog4wqpQUW3qB4kCYVhsS1Ethr}rq|>a*^s zgSNA`LRY49$M4sk$tSewB`E!oi}`wTX98CrWIiB?1a&_2VmIs;!X2Xq;xxZjPhrdr zO9K|iU7~vU@!Ri5Eh>884=ygM6Gyj1@mG7B^N;i&_5CU7WLi@gIH%Xr0os|>&&^&? zJ&Wa+ooYB%1QJ^EgxjSvZfN_6!gTKF7L{_Nb&g9o1^kosKkhX%Li9U?N=mor;A7ZXW4VlFc2y zU!#qA5Z1_R+^|NQH2;EbL&oOoM~(LGJL*HjybbsIhaN!{sfgb+Tdy`bQW5w{k~XZ7rtPi=LUcl)VkbeiSFm zDc)*dO(zGAxs$>|ak*U1(}rlDk{zKM>rPMNZwl(folvKMGT7!>_DkzazIWr}!gT@C z87=00%m|C#wim1b8JDhK^X|>xHShB@+tUqS&xCalmNF>t^s{rTi%5abQFWK;rvQ$4 zzT*mB7)q_x!8M6QMnp!7%dcWVJ!;P@>TsXS9lw0gC-@yK|rME^%X z!@CwNGaRjS{XV|crkFQu4x^X~+dzPmQU@t(Aifi!7*(mQR+=V8uRBTE>CVFoqUfA` zk1khASfm~6G3en$<#X~-xlxz*j;wmuT$})C7Au|Ee``LdO6l^@M-0GH-Ir8t085+w zKA(phgoU^Og%IqHTakiS!k0o@fB)+*Z8xl#Y1}23blT zY%B*5zxfHZbY>)@uc$KAck6t?b%lJI7!%Coa|CzM5^J21;CJEYZ_K>>?TAknc)Tf_ z1U0W((DAM~d(ibp#2~C_Z_UQfr;`m11r*Gt2{LrrF|T?66MzqM?L?L(*zNjJ9}X3I zn?ZMYbgWM23>dMc86@|cHlE1kZ})zYoT%a5pQq&&jif~orM`M^vuGxqNgi-SB1YOUuH zmKaa`Ug3EWyABA)eHAB9WW*D;jRZ3++mz5___KBtI%wg{wU<*$g#@1Q2TIojLx6SSV`?C|=ZrZ% z!`|y!rhe~$?@?H2xUHDbTR=lCfeKL_wZp!m27qgF5rFmaOF?2&Z7376Q8>}j(X4N) zF<`Y?zubjHZCV7cv?1H+y9(>*L&H(|#_k8#eb)HWt}Fa0S^QBKGq(hy5;v5C1OChC zSGOPttinQzSj&7&ktEwK);g{@K;*1ouk4FQ%kl6pYYPxvnBrM#yMG2g#+-7B6pw;C zb!BO0dxiVseqG&kmX(&SzANx=3s^=tdY#D?itOHW!mY@TXiQv>pv%}Z2 zSmX>XD2o7~xSMCP*@ZRs%o{CsK*uvNA)6cDNGy z2#b)VbB3@khb4)XS-7eLS)WcMLf83!amB}4#Iu*w@sb{787kt__0dNkiS190oSs<_ zNsnb*gM{>*Mlbs)Vfay|u}P%x8)B|p0qd8l1$)pm(H>z9;B!C_$z8L%jeshz$Q@dk z3X`Z`<)2Q0)S!;U4 zx3hV4M3MgUl^AG6sVFoqY&(VPnE^G>FErTLmW_z#(9=tZRxao6?G*kCO1<88w&o0(wU<&air1 zDimQ9m4kb1rz&0kYxDzkVrKW%Up;CA0WqX%=G>VB{WcWAw&-YS=LjV#NX6IMkxdSo z4oJ{FbxoqZofvK@ge^?ktTuHdBG4NyPhjedX4*Ey9Lm6dUss`w4A!%^iVbXB)`33c zn;wRobT?H!8S>J=Ue?=%8>*0*gxV_X`)Px-tecB+J3B(Arg$&bez^ox;UuVF-6Hn& zkhY=~$&{lm$iouvKX+vMZK3Y1(&591kH;jn?p|nnLf{T1--RcfoJE2t@doNdD>Gq~ zQz@OnIEg~X?KDuBdt=0G!Rl<@QaOlZ+tb4_lKPG;*2bA4|aYg0I=V$svV&x0FdA{*3F(7!937g@}W3!p5KpJKOX_I-ga50bTe7MMi&Z01JhS?`p z6f+^%-mVHsSg^x{qgIRsC&anhMU8Tb#{Ta?{elwX5(lP0p_veQn_!p)4m>t31I=qs zfY#0sqI}jqc(=uyh3Swb$L3+?s|R%qFE9q?k@|e3)!Z7=$z`m>9YYJuC~53|$qE|A za(W1%r`2$J0txZ#A9Pir1Jt**4+*dQT_@f=gtmW$?Sf~0EJRv3@q&w z<-o$RyK`y-K$?U`VeDw3tY;^niE?`%vO-**81^&-Dw7CdXJ|M4=&$eLgY1JBW^2Xl zke4ThJ&hDJ`mPT|xjZrKbOaOQ*goi|@5Iwud(9HoUb}1JOb{G^G{R$I%^-=?rESOp zX#^r0U=7!IEUCZ&z`t6Lqp~t5K(emgSy|sjvo+EV47IF$Ug&4T%x@%uT&m-EjX@#N zX<~$~!!xys!darOjfM;=17wj#UHEd_1?9-}wOL}p!92R4h^je%^fDcr{jgHJ(R>-#KcDN z`$pbCT+FS^jW2b6CVl?-zF zg*@BL)9T?2oe}?Ru0;!CEsK5^7Iygdma;>(p1)%(Arz&ma6Tq}=D@GRSth(At;y{|Oq-*g|-Y9=n#NXlu`r#GY1IgbqU4+9o&j0X&iF+3Bzak+Z7_`o#< zr=`Q#wmWz|zIXTn_OWEmdf*s5uwLLXN_y!MU?t9@v!Fn?hxaf9$Hy5zQ-rv$j#Yr* zi4lOUaO;ETCu?1di#C`r{K5366n5L-%obXX`7JwB(*l^f3K%LJYMN;o!y8;DX zzHbPHiOG+{@AD3HROGD!V+h$fBUfn7{;mU94+vBejUY?hBQ7IPMdaR~W z(I6puX#VZF5U)_O+pAz0 zr5u&>m;N4KoWgb(jXOM5sbtFW2QEd&UFKNjr0G0*H+s3L335efH;qA# z`fKbUL!=QeUBtwtHR9PA^%9S>l-?$Wn%VGv)We=N(@xZZkJO=cEwn54+^!Xxp zQgjgkA^>$w($kp`*SBbax@>!V7WrG|q$dZ=U0K;7iM;O!8(YY46lXM z_cS0QKXrHIj$)3=thu&zp9OAx7MI-1K0fn+XP*EIOk-9M0RB~7h>2IxD0?bAEsJj) zD>z%Z+n${JXkIFLW-h&+rYohC$m#un;CWi*th^ce^J}Xiu%1asy7WhqJ)PrY*uo+h zXl9P42rcNGdIEJ}e90x9nEEZJ`UYi%wtP54wh&`x&Y3_!^sJnkKKxKA^wfOA>J=#n zjIGhe1$h@B@#1;}K6V3*f6?MccSyo>)A_MQGMxECdxkk<@y~j&&SW;0H~(#bH?|Dr z*sk?YsIpzmer5lyYJ96rv^?#ip~j4j_9yU!U|QmkcoTweQ$t?GeW3J_a5(`WiH{Cqr*VRrpoR)iYeU#s*J#(g>ZKugfL;h~TP_hm`wriQk!QLSDdyeleg(-V9P!FTDtEmk2u0&eZF-M+>b7(H#pivRuK{C;tY`LQ zXG(g)ar{@=J;bi07oQb%@R&R7wHjY^r}(aCaLl$7EP^XH4M;4nzxRSj4-Q&NU0^7n z(ly2O{dnx8%;x>05cx0f78WeO
Pk)Sn}T+=O^`V?}dS3w6L^)mk6%KzMi5`8}8 zY1=v}G;TVC*0jrQ9UUsndcmF!SwPpA7=PI1k&&fctTgdOAT=rHrG}v-=BMW;uT}En z9c6dAwLS-V%kb>Z(>ZYjWpiY$JC?qkLT6a#5*(3NrMGA0dzw8RrfEMm#XY#9K*`o@ z6_d&$J%&fqC~&P}en)RSv5}5lm$638@Qhq6f|26><^EkTN~>gv8nwG#W(U>^uiEy& z@?mMET`wrLdSY1MRCGQ5Vgg^oAXjUq)KI42v{8|m)N%P0qvW<^OU~YJ53hKMUhg6+e|6ZzsV_ zFY96Ecdb$bHI9-3mKWiMRqR|qXdXD_RW(}B`4uBoyqD)s@|XL`Z7f(hNn(|aF&@x9 z?_fSPCq)^%RlG8waOv+}^E@{oO<`}VyD!7^+x6Gfa>^rMbYew?W+2n4Hb>qQ6eK&H zD~^-dDE`M3#9C_b<=e|9H=oae1vAJ<>BQlVu@W}X_vTCWFUA~>yqZ`i&KM*Mce5JZ zjj>j0Te{RW132!we|_LrVf4+ro~3&%*1=_XXAdL*k34#pBHUXzPP_EhV?-vwpCRf- zMT9OUO&~(OPI~Pbv12S0(&b)W>D5x`#s53hm$(5K*8e{xh(J$>2~&++TJInIM(}_V zEoi`=`hxOLoKB58fB*mh0pazNy-?c8O$J{7PgairfiN3wqyZ!6e?;N!IleP$p6+YT zdt;px&@$XzG_uN;=9h@R826Rx3zopzW}EJX&Nunb{;S3++tux27GEWB`4-HXbLKK9 zI{3m}y`5p}LLU zZ9iX)f3vkD<^~7z?739UVMXWxcNh$&1jg4THbXyr?X)E#`^d0a?-?C(bBA5FUP zDZSBRkK4cc3Ktqi?<6;WxGWi&Dix?_U%N8JL?;uk+^e^&0H1N!ZdO9bNWTGd5IMx> z?v!3O(sEHN8R}p-p?T?CW&k zM51u;KO~f-wRTTYDTTRqK?z(lWH*u>Hw)44h4rb>1tuOw0-fPr(>@w9o zA&dep7zD`JKfPH_{{8g{Jx4#L1l#~Aj!3^JF8d@`nnh*QeKs4NPCEEsC*%b3;^RV) zg9flJ2Tx$<;3yM$(@Q6Nt8WW-N;uUf4hOK>$wQMG61;tHcpy`S0h|`bZF({P zuF7#<%Vlj%B!4vIUo@{IF1p2_)T2>9EuB1z@Ih!axq^NTytg<6?6H$KCe)>3p3J`d zrzThytrsT|u8C0CWz4;V1T2>E1P$KW$^I;;JvsFIud4`mTLC<{Hl6W~l@dXGF4b~LmF z>$T^oKd}H-KE_lC+u9UQv}`|8WL$!t#M;4HU*4{yS7d?xno+-kychM7k>D0@w_$&4 z@MY%nW_$MyA-)U6=Q*SeWqVkUTiY;KI@jgEZlvc7ee~!g9j0Mt^BhxQo851?d(Wme z;5EYe6n~lIW@HL*h^4nGjCGr5ib>k7NeuRFM#x;Mazy_HJIGRpCsHPlPgVp^HNp7j z+J9cKpwS4{VmXPSQ#3maF041q{2Bsi$2g3$QZ@tqwJEqBrBWY?70(}5lo-fV%8d@c zb_ioLm!t0dI1I&=KEou;dg#?VMQ+?R(4L?j#*zDbr2nbU$^z&w0!2jK~F6OM5?=$jLpA zGpO?EK^X;5sa#1*RA+e52A$K)$Ppyq1P_SaTcQpUis*<`A<5%HutuHr{LY}fx1-V9h4*_Ze2Y)(wW%X7iUwUQwnG4_!?q>&bmmXiSW( z7C)=dn5!a!d9w0xb4ys%#qejha=MuK>i~nvaeCn6lZvAz{ zqZx5ry;BNk@yxC_YAnNsXjd4o&FgLO^t3jWB(EJVN1?eq&auxaYxFqTR#5xKmZX$G zec{;0N+a>PlYT40qJlMeIPco)^?_vH!V|^q88c((o3hT8UKR`6MuPb~#YsK@00000 M00000000000I)>!%>V!Z literal 0 HcmV?d00001 diff --git a/content/en/get-started/lambda/files/just-sweet-potatoes.zip b/content/en/get-started/lambda/files/just-sweet-potatoes.zip new file mode 100644 index 0000000000000000000000000000000000000000..ddbf6ea387940ee6321934957b622a7f0d34d65e GIT binary patch literal 943 zcmWIWW@h1HU|`^2s92O6eo}qi*~g3w4BMGOA`A?fc`2zCdRfJ_!3Vo;8wl+Et=%?f zlF+7wU$!K2r!L$+?NFZoX*rQhoz4?dizm*Vb*cV+&*ihzN~D`}EB}0Xw%5Fj`GU!h z#mj>#g?-96x$iVS)QpaJ)Uk8jgLle*avb<}Mx2US$T4Zx`D0;>-$Q(tww#H2uv~vx zoA2z7Q$=y}4xARKC{2U6Q-$K>ZCB= zpL{sFV*lNB&mYaZQ}TPd!`gqdesW)1_{8|^x{IGWe>qJrshD+AjNkpp^y?=U+~WDs zw2bL;fDY4EgJW5{W<0zs)u(uiVWMK$td%E4qqLeHct|qMQfbuj^Ahi8oa*l&-e=6@>%NKcxuMPW?XCj*~D!xkV^wo8UKfxPz?92NEmwih6pRXvi_YnQLYRk5ywnkQ+X!)nx ztvB>9jw+qlydcO%A>we4>;6+W3+3Y@=9lkh41gzuRW0%1&o_Tt{Q{T(@_~s#7)Zy* z`#L)N2S@1Z#lzA>a)M}bdO}jd2VbAC5By;r0S!zOB$(9&qzw%WZZTyl%r~6hsPRBT zNQfn|vGfk(qmvn4GZsE#;^7H8`EzGgCo8Mv$|}pwqpC}fuGG}*R9$(B@nFE#{DvFN zjg9gP^~?<|*^~BhPS}u^AmDmJbefu&>a(dS&z2hPc~k1cx-#omjsnY~NXbJo>(`xp zST<|J{R=Oz$Ue@V9wB*+-6m4#$C0c16BU1R^=m6}9{I68;QoOFhfdr&bHzf}@}$y5 zD+_f)%iFgu9KCem%+-?t*Kb}r8F>B3r8^z+g!uh=PR<{9 literal 0 HcmV?d00001 diff --git a/content/en/get-started/lambda/function-test.webp b/content/en/get-started/lambda/function-test.webp new file mode 100644 index 0000000000000000000000000000000000000000..be52ccd3925f374b9b666ebbfe54063959724988 GIT binary patch literal 118296 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

#0F?~IkHp7 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 + Quickly get started using Armory CD-as-a-Service to deploy a function to AWS Lambda. Install the CLI, connect to AWS Lambda with a single command, and deploy a sample function. Learn deployment file syntax. +weight: 2 +--- + + +## {{% heading "prereq" %}} + +* You have read the {{< linkWithTitle "deployment/lambda/overview/index.md" >}}. +* AWS requirements: + * You need an [AWS Account](https://aws.amazon.com/free/), and you must have authority to create an IAM Role. + * You should be familiar with [AWS Lambda](https://aws.amazon.com/lambda/). + * You need an [AWS Lambda execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). + +## Learning objectives + +In this guide, you deploy an AWS Lambda function to four regions in your AWS Lambda account. + +1. [Sign up for CD-as-a-Service](#sign-up-for-cd-as-a-service). +1. [Install the CD-as-as-Service CLI](#install-the-cd-as-as-service-cli) on your Mac, Linux, or Windows workstation. +1. Create AWS artifacts + 1. [Create the IAM Role](#create-the-armory-iam-role) that CD-as-a-Service assumes to deploy your function. + 1. [Create S3 buckets](#create-s3-buckets), one for each deployment region, to house your function's zip files. + 1. [Upload the sample function](#upload-the-aws-lambda-function-to-your-buckets) to each S3 bucket. +1. [Create your CD-as-a-Service deployment config file](#create-your-deployment-config-file). +1. [Deploy the sample function](#deploy-the-sample-function). +1. [Test the deployed function](#test-the-deployed-function) in the AWS Lambda console. + +## Sign up for CD-as-a-Service + +{{< include "register.md" >}} + +## Install the CD-as-as-Service CLI + +{{< include "cli/install-cli-tabpane.md" >}} + +### Log in with the CLI + +```shell +armory login +``` + +Confirm the device code in your browser when prompted. Then return to this guide. + +## Create the Armory IAM role + +{{< include "lambda/iam-role.md" >}} + +{{< include "lambda/iam-role-steps.md" >}} + +## Create S3 buckets + +You need to store your AWS Lambda function as a zip file in an S3 bucket, and S3 bucket needs to be in the same region you deploy to. For this guide, you are going to deploy the AWS Lambda function to four regions so you need to create four buckets: + + +| Region | Bucket Name | +| ---------|----------| +| us-east-1 | armory-demo-east-1 | +| us-east-2 | armory-demo-east-2 | +| us-west-1 | armory-demo-west-1 | +| us-west-2 | armory-demo-west-2 | + +Use the default values for the rest of the fields. + +After you have finished, you should have four buckets. + +{{< figure src="s3-buckets.webp" >}} + +## Upload the AWS Lambda function to your buckets + +Armory provides a basic AWS Lambda function called `just-sweet-potatoes` for you to deploy. + +
Expand to see the code + +`index.js` has the following content: + +```js +exports.handler = async (event) => { + + const randomFact = potatolessFacts[Math.floor(Math.random() * potatolessFacts.length)]; + + // Prepare the response + const response = { + statusCode: 200, + body: randomFact, + }; + + return response; +}; + +const potatolessFacts = [ + "Sweet potatoes are a great source of vitamin A, which is important for vision health.", + "There are over 400 varieties of sweet potatoes around the world.", + "Sweet potatoes are not related to regular potatoes; they belong to the morning glory family.", + "Sweet potatoes are high in fiber, making them good for digestion.", + "Sweet potatoes come in different colors, including orange, purple, and white.", + "Sweet potatoes are one of the oldest vegetables known to man.", + "North Carolina is the largest producer of sweet potatoes in the United States.", + "Sweet potatoes are often used in Thanksgiving dishes like casseroles and pies.", + ]; +``` + +
+ +1.
Download the function zip file. +1. Upload the file to each of your `armory-demo-lambda-deploy` S3 buckets. +1. Make a note of each bucket's S3 path to the lambda function. The paths should be: + + * `s3://armory-demo-east-1/just-sweet-potatoes.zip` + * `s3://armory-demo-east-2/just-sweet-potatoes.zip` + * `s3://armory-demo-west-1/just-sweet-potatoes.zip` + * `s3://armory-demo-west-2/just-sweet-potatoes.zip` + +## Create your deployment config file + +First create a file called `deploy.yaml` with the following contents: + +{{< highlight yaml "linenos=table" >}} +version: v1 +kind: lambda +application: just-sweet-potatoes +description: A sample function for deployment using CD-as-a-Service +{{< /highlight >}} + +* `kind`: `lambda` tells CD-as-a-Service the deployment type +* `application`: This is the unique name of your deployment and appears in the **Deployments** list. +* `description`: Brief description of your function (optional) + +### Add a canary strategy + +A strategy defines how CD-as-a-Service deploys your AWS Lambda function to a target. + +A [canary strategy]({{< ref "deployment/strategies/canary.md" >}}) is a linear sequence of steps. The `setWeight` step defines the ratio of traffic between function versions. + + +Add a basic [canary strategy]({{< ref "deployment/strategies/canary" >}}) with a single step that sets the weight to 100. This routes 100% of traffic to the new version. You use this `allAtOnce` strategy to initially deploy your function to AWS Lambda when the function does not exist in the AWS Lambda console. This strategy is also useful in non-production environments such as staging. + +{{< highlight yaml "linenos=table" >}} +strategies: + allAtOnce: + canary: + steps: + - setWeight: + weight: 100 +{{< /highlight >}} + +### Add targets + +In CD-as-a-Service, a `target` is an (AWS Account, region) pair. + +```mermaid +flowchart LR + A[dev] --> B[staging] + B --> C[prod-west-1] + B --> D[prod-west-2] +``` + +When deploying to multiple targets, you can specify dependencies between targets using the `constraints.dependsOn` field. CD-as-a-Service deploys your AWS Lambda function from your S3 bucket to the `dev` target first. You want a linear, success-dependent progression from `dev` to `prod`, so there is a `dependsOn` constraint for staging and prod targets. `staging` depends on `dev` and the prod targets depend on `staging`. + +Add the four targets, one in each region: + +{{< highlight yaml "linenos=table" >}} +targets: + dev: + account: + deployAsIamRole: + region: us-east-1 + strategy: allAtOnce + staging: + account: + deployAsIamRole: + region: us-east-2 + strategy: allAtOnce + constraints: + dependsOn: + - dev + prod-west-1: + account: + deployAsIamRole: + region: us-west-1 + strategy: allAtOnce + constraints: + dependsOn: + - staging + prod-west-2: + account: + deployAsIamRole: + region: us-west-2 + strategy: allAtOnce + constraints: + dependsOn: + - staging +{{< /highlight >}} + +Replace: + +* `` with the name of your AWS Account, such as `armory-docs-dev` +* `` with the ARN of the role you created in the [Create the Armory IAM role](#create-the-armory-iam-role) section + + +### Add AWS Lambda artifacts + +In this section, you declare your AWS Lambda function artifacts. You have an entry for each deployment region. + +The function is named `just-sweet-potatoes` in each S3 bucket, but the `functionName` is unique for each entry in the +`artifacts` collection. For this guide, the target name is appended to the function's name to create the +`functionName` value for each entry. + +{{< highlight yaml "linenos=table" >}} +artifacts: + - functionName: just-sweet-potatoes-dev + path: s3://armory-demo-east-1/just-sweet-potatoes.zip + type: zipFile + - functionName: just-sweet-potatoes-staging + path: s3://armory-demo-east-2/just-sweet-potatoes.zip + type: zipFile + - functionName: just-sweet-potatoes-prod-west-1 + path: s3://armory-demo-west-1/just-sweet-potatoes.zip + type: zipFile + - functionName: just-sweet-potatoes-prod-west-2 + path: s3://armory-demo-west-2/just-sweet-potatoes.zip + type: zipFile +{{< /highlight >}} + +### Add provider options + +This section defines options specific to the cloud provider to which you are deploying. You need to populate provider options for each deployment target. + +{{< highlight yaml "linenos=table" >}} +providerOptions: + lambda: + - target: dev + name: just-sweet-potatoes-dev + runAsIamRole: + handler: index.handler + runtime: python3.10 + - target: staging + name: just-sweet-potatoes-staging + runAsIamRole: + handler: index.handler + runtime: python3.10 + - target: prod-west-1 + name: just-sweet-potatoes-prod-west-1 + runAsIamRole: + handler: index.handler + runtime: python3.10 + - target: prod-west-2 + name: just-sweet-potatoes-prod-west-2 + runAsIamRole: + handler: index.handler + runtime: python3.10 +{{< /highlight >}} + +{{< include "dep-file/lambda-provider-options.md" >}} + +## Deploy the sample function + +### First deployment + +Start your deployment using the CLI: + +```bash +armory deploy start -f deploy.yaml +``` + +You can use the link provided by the CLI to observe your deployment's progression in the [CD-as-a-Service Console](https://console.cloud.armory.io/deployments). CD-as-a-Service deploys your resources to `dev`. Once those resources have deployed successfully, CD-as-a-Service deploys to `staging` and then `prod`. + +{{< figure src="deploy-details.webp" width="80%" height="80%" >}} + +### Second deployment + +CD-as-a-Service is designed to help you build safety into your app deployment process. It does so by giving you declarative levers to control the scope of your deployment. + +CD-as-a-Service has four kinds of constraints that you can use to control your deployment: + +- Manual Approvals +- Timed Pauses +- [External Automation (Webhooks)]({{< ref "webhooks/overview.md" >}}) to run integration tests and security audits or send notifications +- [Automated Canary Analysis]({{< ref "deployment/strategies/canary" >}}) + +You can use these constraints between environments and within environments. During your next deployment, you want to issue a manual approval before deploying to to the prod targets. Add to your `staging` target an `afterDeployment` constraint with a manual judgment: + +{{< highlight yaml "linenos=table,hl_lines=15-17" >}} +targets: + dev: + account: + deployAsIamRole: + region: us-east-1 + strategy: allAtOnce + staging: + account: + deployAsIamRole: + region: us-east-2 + strategy: allAtOnce + constraints: + dependsOn: + - dev + afterDeployment: + - pause: + untilApproved: true + prod-west-1: + account: + deployAsIamRole: + region: us-west-1 + strategy: allAtOnce + constraints: + dependsOn: + - staging + prod-west-2: + account: + deployAsIamRole: + region: us-west-2 + strategy: allAtOnce + constraints: + dependsOn: + - staging +{{< /highlight>}} + + +Start your second deployment using the CLI: + +```bash +armory deploy start -f deploy.yaml +``` + +Use the link provided by the CLI to observe your deployment's progression in the [CD-as-a-Service Console](https://console.cloud.armory.io/deployments). + +In this second deployment, you see that CD-as-a-Service paused deployment to prod. Click the **Approve** button in the `staging` node to continue deployment. + +{{< figure src="manual-constraint.webp" width="80%" height="80%" >}} + +## Test the deployed function + +Go to the `us-east-1` Lamba section of your AWS Account. You should see your deployed `just-sweet-potatoes-dev` function there. + +{{< figure src="deployed-function-list.webp" width="80%" height="80%" >}} + + +1. Click `just-sweet-potatoes-dev` to open the function's details page. +1. Click the **Test** tab. +1. Click the **Test** button in the **Test event** section to test the function. +1. Expand the **Details** section to see the test results. + + {{< figure src="function-test.webp" >}} + + +## Clean up + +1. Delete the deployed AWS Lambda functions from each region. +1. Delete the AWS Lambda zip files from each S3 bucket. Delete each S3 bucket. +1. Delete the CloudFormation Stack. This also deletes the associated IAM Role. + + +## {{% heading "nextSteps" %}} + +* {{< linkWithTitle "integrations/ci-systems/gh-action.md" >}} +* {{< linkWithTitle "deployment/strategies/canary.md" >}} +* {{< linkWithTitle "webhooks/overview.md" >}} \ No newline at end of file diff --git a/content/en/get-started/lambda/manual-constraint.webp b/content/en/get-started/lambda/manual-constraint.webp new file mode 100644 index 0000000000000000000000000000000000000000..4374e02fbfe486e657c5052a8c6a3d76b98885dd GIT binary patch literal 58356 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

6Nxs~H-( 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 DoGl>y literal 0 HcmV?d00001 diff --git a/content/en/get-started/lambda/s3-buckets.webp b/content/en/get-started/lambda/s3-buckets.webp new file mode 100644 index 0000000000000000000000000000000000000000..291fdbe161ce4e41b00bddd5252a2335ad32818c GIT binary patch literal 25444 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 - Learn what you need to get started deploying an app to Kubernetes using Armory Continuous Deployment-as-a-Service. + Learn what you need to get started deploying your AWS Lambda function or an app to Kubernetes. weight: 1 -categories: ["Get Started", "Concepts"] -tags: ["Quickstart", "Deployment"] --- ## What you need to use CD-as-a-Service -You need a Mac, Linux, or Windows workstation and access to a Kubernetes cluster. If you need a cluster, consider installing a local [Kind](https://kind.sigs.k8s.io/docs/user/quick-start/) or [Minikube](https://minikube.sigs.k8s.io/docs/start/) cluster. Your cluster's API endpoint does not need to be publicly accessible to use CD-as-a-Service. +You need a Mac, Linux, or Windows workstation and access to a Kubernetes cluster or AWS Lambda. -## Deploy a sample app provided by Armory +If you need a Kubernetes cluster, consider installing a local [Kind](https://kind.sigs.k8s.io/docs/user/quick-start/) or [Minikube](https://minikube.sigs.k8s.io/docs/start/) cluster. Your cluster's API endpoint does not need to be publicly accessible to use CD-as-a-Service. Alternately, you can use a interactive learning environment like [Killercoda](https://killercoda.com/learn). + + +## AWS Lambda + +### Deploy a sample app provided by Armory + + * Written [Quickstart guide]({{< ref "get-started/lambda.md" >}}) deploying a sample function to your AWS account + +## Kubernetes + +### Deploy a sample app provided by Armory * [Guided UI tour](https://console.cloud.armory.io/getting-started) using an Armory sandbox cluster * Written [Quickstart guide]({{< ref "get-started/quickstart.md" >}}) deploying a sample app to your own cluster -## Deploy your own app to your cluster +### Deploy your own app to your cluster * [Guided UI tour](https://console.cloud.armory.io/getting-started?gettingStartedPane=InstallFlowPane) * Written [Deploy Your Own App]({{< ref "get-started/deploy-your-app.md" >}}) guide \ No newline at end of file diff --git a/content/en/get-started/quickstart/index.md b/content/en/get-started/quickstart/index.md index 80cdb2c2..c00fd912 100644 --- a/content/en/get-started/quickstart/index.md +++ b/content/en/get-started/quickstart/index.md @@ -1,8 +1,8 @@ --- -title: Quickstart -linktitle: Quickstart +title: Quickstart Kubernetes Deployment +linktitle: Quickstart Kubernetes description: > - Quickly get started using Armory CD-as-a-Service. Install the CLI, connect your Kubernetes cluster with a single command, and deploy a sample app using a canary traffic split strategy. Learn deployment file syntax. + Quickly get started using Armory CD-as-a-Service to deploy a sample app to Kubernetes. Install the CLI, connect your Kubernetes cluster with a single command, and deploy a sample app using a canary traffic split strategy. Learn deployment file syntax. weight: 2 categories: ["Get Started", "Guides"] tags: ["Deployment", "Quickstart"] diff --git a/content/en/includes/dep-file/deploy-example.yaml b/content/en/includes/code/k8s-skeleton.yaml similarity index 100% rename from content/en/includes/dep-file/deploy-example.yaml rename to content/en/includes/code/k8s-skeleton.yaml diff --git a/content/en/includes/code/lambda-skeleton.yaml b/content/en/includes/code/lambda-skeleton.yaml new file mode 100644 index 00000000..2f7a9a28 --- /dev/null +++ b/content/en/includes/code/lambda-skeleton.yaml @@ -0,0 +1,73 @@ +--- +version: v1 +kind: lambda +application: +targets: + : + account: + region: + deployAsIamRole: + strategy: + constraints: + dependsOn: + - + - +artifacts: + - functionName: + path: # S3 bucket + type: zipFile +providerOptions: + lambda: + - handler: # typically index.handler + name: + runAsIamRole: + runtime: # nodejs18.x, Python, etc + target: +strategies: + : + canary: + steps: + - pause: + duration: + unit: + - setWeight: + weight: 100 + - runWebhook: + name: +trafficManagement: + - targets: [""] + alias: + - functionName: + aliasName: +analysis: + defaultMetricProviderName: + queries: + - name: + upperLimit: + lowerLimit: + queryTemplate: >- + +webhooks: + - name: + method: + uriTemplate: + networkMode: + agentIdentifier: + headers: + - key: Authorization + value: + - key: Content-Type + value: application/json + bodyTemplate: + inline: >- + { + "event_type": "", + "client_payload": { + "callbackUri": "{{armory.callbackUri}}/callback" + } + } + retryCount: +deploymentConfig: + timeout: + unit: + duration: diff --git a/content/en/includes/code/lambda-traffic-split-snippet.yaml b/content/en/includes/code/lambda-traffic-split-snippet.yaml new file mode 100644 index 00000000..e8b18d51 --- /dev/null +++ b/content/en/includes/code/lambda-traffic-split-snippet.yaml @@ -0,0 +1,49 @@ +targets: + prod-us-east-1: + account: armory-docs-dev + region: us-east-1 + deployAsIamRole: "arn:aws:iam::111111111111:role/ArmoryRole" + strategy: trafficSplit + prod-us-east-2: + account: armory-docs-dev + region: us-east-2 + deployAsIamRole: "arn:aws:iam::111111111111:role/ArmoryRole" + strategy: trafficSplit +strategies: + trafficSplit: + canary: + steps: + - setWeight: + weight: 25 + - pause: + untilApproved: true + - setWeight: + weight: 100 +artifacts: + - functionName: just-sweet-potatoes-us-east-1 + path: s3://armory-demo-east-1/just-sweet-potatoes.zip + type: zipFile + - functionName: just-sweet-potatoes-us-east-2 + path: s3://armory-demo-east-2/just-sweet-potatoes.zip + type: zipFile +providerOptions: + lambda: + - name: just-sweet-potatoes-us-east-1 + target: prod-us-east-1 + runAsIamRole: "arn:aws:iam::111111111111:role/LambdaExecutionRole" + handler: index.handler + runtime: nodejs18.x + - name: just-sweet-potatoes-us-east-2 + target: prod-us-east-2 + runAsIamRole: "arn:aws:iam::111111111111:role/LambdaExecutionRole" + handler: index.handler + runtime: nodejs18.x +trafficManagement: + - targets: ['prod-us-east-1'] + alias: + - functionName: just-sweet-potatoes-us-east-1 + aliasName: live-version + - targets: ['prod-us-east-2'] + alias: + - functionName: just-sweet-potatoes-us-east-2 + aliasName: live-version diff --git a/content/en/includes/create-config.md b/content/en/includes/create-k8s-config.md similarity index 100% rename from content/en/includes/create-config.md rename to content/en/includes/create-k8s-config.md diff --git a/content/en/includes/create-lambda-config.md b/content/en/includes/create-lambda-config.md new file mode 100644 index 00000000..a322c93a --- /dev/null +++ b/content/en/includes/create-lambda-config.md @@ -0,0 +1,56 @@ +1. Create a YAML file with this basic content: + + ```yaml + version: v1 + kind: lambda + application: + strategies: + canary: + steps: + - setWeight: + weight: 100 + targets: + : + account: + deployAsIamRole: + region: + strategy: canary + artifacts: + - functionName: + path: + type: zipFile + providerOptions: + lambda: + - target: + name: + runAsIamRole: + handler: + runtime: + ``` + + These sections are the minimum you need to declare to deploy an AWS Lambda function. + +1. Customize your deployment file by setting the following minimum set of parameters: + + - `application`: The name of your function. This appears in the **Deployments** list page. + - `targets.`: A descriptive name for your deployment. + + * `account`: A descriptive name for the AWS Account this target resides in, such as `armory-docs-dev`. + * `deployAsIamRole`: The ARN of the [ArmoryRole]({{< ref "deployment/lambda/create-iam-role-lambda" >}}) that + CD-as-a-Service assumes to deploy your function. + * `region`: The AWS Region to deploy your function to. + + * `artifacts` + + * `functionName`: A unique name for each entry in the `artifacts` collection. + * `path`: The S3 path to your function's zip file. + + * `providerOptions.lambda` + + {{< include "dep-file/lambda-provider-options.md" >}} + +1. (Optional) Ensure there are no YAML issues with your deployment file. + + Since a hidden tab in your YAML can cause your deployment to fail, it's a good idea to validate the structure and syntax in your deployment file. There are several online linters, IDE-based linters, and command line linters such as `yamllint` that you can use to validate your deployment file. + +> You can view detailed configuration options in the {{< linkWithTitle "reference/deployment/config-file/_index.md" >}} section. diff --git a/content/en/includes/dep-file/skeleton-config.md b/content/en/includes/dep-file/k8s-skeleton-config.md similarity index 71% rename from content/en/includes/dep-file/skeleton-config.md rename to content/en/includes/dep-file/k8s-skeleton-config.md index d719a29d..9c06338a 100644 --- a/content/en/includes/dep-file/skeleton-config.md +++ b/content/en/includes/dep-file/k8s-skeleton-config.md @@ -2,5 +2,5 @@ Expand to see a skeleton config file for a deployment to Kubernetes. All all con

Click to view a skeleton deployment config file
-{{< readfile file="/includes/dep-file/deploy-example.yaml" code="true" lang="yaml" >}} +{{< readfile file="/includes/code/k8s-skeleton.yaml" code="true" lang="yaml" >}}
\ No newline at end of file diff --git a/content/en/includes/dep-file/lambda-provider-options.md b/content/en/includes/dep-file/lambda-provider-options.md new file mode 100644 index 00000000..d967f338 --- /dev/null +++ b/content/en/includes/dep-file/lambda-provider-options.md @@ -0,0 +1,5 @@ +* `target`: CD-as-a-Service deployment [target]({{< ref "reference/deployment/config-file/targets" >}}) name +* `name`: This is the same value as `artifacts.functionName` and `trafficManagement.alias.functionName` for the target region. This function name appears on your AWS Lambda **Functions** list page. +* `runAsIamRole`: Replace `` with the ARN of your [AWS Lambda execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html), which is **not** the ArmoryRole ARN. +* `handler`: The function's handler method, such as `index.handler`. This value is written to the **Runtime settings** section in the AWS Lambda function details page. +* `runtime`: [runtime identifier](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html), such as `python3.22` or `nodejs18.x`. This value is written to the **Runtime settings** section in the AWS Lambda function details page. diff --git a/content/en/includes/dep-file/lambda-skeleton-config.md b/content/en/includes/dep-file/lambda-skeleton-config.md new file mode 100644 index 00000000..67761065 --- /dev/null +++ b/content/en/includes/dep-file/lambda-skeleton-config.md @@ -0,0 +1,6 @@ +Expand to see a skeleton config file for a deployment to AWS Lambda. All all config options are listed for each section. + +
Click to view a skeleton deployment config file +
+{{< readfile file="/includes/code/lambda-skeleton.yaml" code="true" lang="yaml" >}} +
\ No newline at end of file diff --git a/content/en/includes/lambda/iam-role-steps.md b/content/en/includes/lambda/iam-role-steps.md new file mode 100644 index 00000000..bb3e6c23 --- /dev/null +++ b/content/en/includes/lambda/iam-role-steps.md @@ -0,0 +1,12 @@ +1. In your default browser, log in to your AWS Account. You must have permissions to configure IAM roles. +1. In your terminal, execute the following: + + ```bash + armory aws create-role + ``` + + Type `Y` in the terminal to continue with Stack creation. This opens your browser to the CloudFormation page of your AWS Console. You complete the rest of this process in your browser. + +1. Review the resources that CD-as-a-Service is creating in your AWS account. The default IAM Role name is **ArmoryRole**. +1. Click **Create** on the AWS CloudFormation page and wait for Stack creation to finish. +1. After the CloudFormation Stack creation finishes, locate the created role ARN in the **Outputs** section. You can find it under the key **RoleArnOutput**. Make note of the ARN since you use it in your deployment config file. \ No newline at end of file diff --git a/content/en/includes/lambda/iam-role.md b/content/en/includes/lambda/iam-role.md new file mode 100644 index 00000000..8189db1e --- /dev/null +++ b/content/en/includes/lambda/iam-role.md @@ -0,0 +1 @@ +In order to deploy AWS resources, CD-as-a-Service needs to create a Trust Relationship in your AWS account by adding an IAM role. CD-as-a-Service assumes this role to execute deployments on your behalf. The Armory CLI provides a function that creates an [AWS CloudFormation Stack](https://docs.aws.amazon.com/cloudformation/) with an IAM Role, by default named **ArmoryRole**. You need to create a Stack in each AWS Account you want to deploy your AWS Lambda functions to. \ No newline at end of file diff --git a/content/en/includes/overview-target-constraints.md b/content/en/includes/overview-target-constraints.md new file mode 100644 index 00000000..41346601 --- /dev/null +++ b/content/en/includes/overview-target-constraints.md @@ -0,0 +1,7 @@ +You can also configure your deployment targets to use constraints that prevent a deployment from beginning or completing until certain conditions are met. For example, you can configure your deployment to wait for your code to be deployed to your staging environment before promoting that code to production. + +CD-as-a-Service offers you multiple constraint options including: + +* `dependsOn`: Use `dependsOn` to specify a target deployment that must successfully complete prior to starting this target's deployment. +* `beforeDeployment`: You can use this constraint to implement a checklist of things that need to happen before a target starts deploying. For example, you can use the `beforeDeployment` constraints with the [pause step]({{< ref "reference/deployment/config-file/targets#pause" >}}) to require a manual approval. +* `afterDeployment`: You can use this constraint to prevent downstream deployments from starting until some set of post deployment tasks finishes. For example, you can use this with the [runWebhook step]({{< ref "reference/deployment/config-file/targets#run-a-webhook" >}}) to execute a set of end-to-end tests in a staging environment before deploying to production. diff --git a/content/en/integrations/ci-systems/gh-action.md b/content/en/integrations/ci-systems/gh-action.md index cb78e96e..e861c401 100644 --- a/content/en/integrations/ci-systems/gh-action.md +++ b/content/en/integrations/ci-systems/gh-action.md @@ -58,7 +58,7 @@ Then the value you use for `manifests.path` in your `deployment.yaml` would be ` ### Create a deployment file -{{< include "create-config.md" >}} +{{< include "create-k8s-config.md" >}} Save your deployment file to a directory in your repo. You use this path later when you configure the GitHub Action's `path-to-file` parameter. diff --git a/content/en/reference/deployment/_index.md b/content/en/reference/deployment/_index.md index 5dd3cec3..b4f6961c 100644 --- a/content/en/reference/deployment/_index.md +++ b/content/en/reference/deployment/_index.md @@ -17,7 +17,7 @@ Make sure you have [installed the CD-as-a-Service CLI]({{< ref "cli" >}}), which ## Templates -You can generate a template file by running the following command with the CLI: +You can generate a Kubernetes deployment config file template by running the following command with the CLI: Basic template: @@ -48,13 +48,27 @@ armory template kubernetes [template-type] > deployment-template.yaml ## How to create a deployment config file -{{< include "create-config.md" >}} +{{< tabpane text=true right=true >}} +{{% tab header="**Platform:**" disabled=true /%}} +{{% tab header="AWS Lambda" %}} +{{< include "create-lambda-config.md" >}} +{{% /tab %}} +{{% tab header="Kubernetes" %}} +{{< include "create-k8s-config.md" >}} +{{% /tab %}} +{{< /tabpane >}} -## Deployment config file example -{{< include "dep-file/skeleton-config.md" >}} +## Deployment config file examples +### AWS Lambda + +{{< include "dep-file/lambda-skeleton-config.md" >}} + +### Kubernetes + +{{< include "dep-file/k8s-skeleton-config.md" >}} ## {{% heading "nextSteps" %}} diff --git a/content/en/reference/deployment/config-file/_index.md b/content/en/reference/deployment/config-file/_index.md index 1ede758e..800ea933 100644 --- a/content/en/reference/deployment/config-file/_index.md +++ b/content/en/reference/deployment/config-file/_index.md @@ -3,20 +3,15 @@ title: Deployment Config File Reference linkTitle: Deployment Config File weight: 1 description: > - The deployment config file is where you configure your app for deployment by Armory CD-as-a-Service. This config file includes application, deploymentConfig, targets, manifests, strategies, analysis, webhooks, and trafficManagement definitions. -categories: ["Reference"] -tags: ["Deployment", "Deploy Config"] + The deployment config file is where you configure your AWS Lambda function or Kubernetes app for deployment by Armory CD-as-a-Service. This config file includes application, artifacts, provider options, deploymentConfig, targets, manifests, strategies, analysis, webhooks, and trafficManagement definitions. --- -## Deployment config file example - -{{< include "dep-file/skeleton-config.md" >}} - - - - - +## Deployment config file examples +### AWS Lambda +{{< include "dep-file/lambda-skeleton-config.md" >}} +### Kubernetes +{{< include "dep-file/k8s-skeleton-config.md" >}} diff --git a/content/en/reference/deployment/config-file/application.md b/content/en/reference/deployment/config-file/application.md index dfa6dade..38ec78fe 100644 --- a/content/en/reference/deployment/config-file/application.md +++ b/content/en/reference/deployment/config-file/application.md @@ -1,15 +1,17 @@ --- -title: Application Config +title: Application and Kind Config description: > - Define your app name. + Declare your app name and specify whether the deployment is to Kubernetes or AWS Lambda. --- -## Application + +## Fields ```yaml version: v1 -kind: kubernetes -application: +kind: +application: ``` -Provide a descriptive name for your application so that you can identify it when viewing the status of your deployment in the **Deployments UI** and other locations. +- `kind`: `kubernetes` or `lambda` +- `application`: Provide a descriptive name for your Kubernetes app or Lambda function so that you can identify it when viewing the status of your deployment in the **Deployments UI** and other locations. diff --git a/content/en/reference/deployment/config-file/artifacts.md b/content/en/reference/deployment/config-file/artifacts.md new file mode 100644 index 00000000..6d448854 --- /dev/null +++ b/content/en/reference/deployment/config-file/artifacts.md @@ -0,0 +1,250 @@ +--- +title: Artifacts and Provider Options (AWS Lambda) +description: > + Declare your AWS Lambda artifacts (functionName, path, type) and provider options. +--- + +**AWS Lambda Only** + +## Artifacts + +This section defines the AWS Lambda artifacts you are deploying. The artifacts reach all target for which there is a provider option block for that function name. + +```yaml +artifacts: + - functionName: + path: + type: zipFile +``` + +* `functionName`: A unique name for each entry in the `artifacts` collection. You also use this value for `providerOptions.lambda.name` and `trafficManagement.alias.functionName`. +* `path`: The S3 path to your function's zip file +* `type`: This value is always `zipFile`. CD-as-a-Service does not support deploying AWS Lambda containers. + +>If you want to deploy to multiple regions in the same AWS Account, your `functionName` should be unique for each region. + +In this example, you deploy a function called `just-sweet-potatoes` to four regions in the same AWS Account: + +```yaml +targets: + dev: + account: + deployAsIamRole: + region: us-east-1 + strategy: allAtOnce + staging: + account: + deployAsIamRole: + region: us-east-2 + strategy: allAtOnce + constraints: + dependsOn: + - dev + prod-west-1: + account: + deployAsIamRole: + region: us-west-1 + strategy: allAtOnce + constraints: + dependsOn: + - staging + prod-west-2: + account: + deployAsIamRole: + region: us-west-2 + strategy: allAtOnce + constraints: + dependsOn: + - staging +artifacts: + - functionName: just-sweet-potatoes-us-east-1 + path: s3://armory-demo-east-1/just-sweet-potatoes.zip + type: zipFile + - functionName: just-sweet-potatoes-us-east-2 + path: s3://armory-demo-east-2/just-sweet-potatoes.zip + type: zipFile + - functionName: just-sweet-potatoes-prod-west-1 + path: s3://armory-demo-west-1/just-sweet-potatoes.zip + type: zipFile + - functionName: just-sweet-potatoes-prod-west-2 + path: s3://armory-demo-west-2/just-sweet-potatoes.zip + type: zipFile +``` + +## Provider options + +This section defines options specific to the cloud provider to which you are deploying. You need to populate provider options for each deployment target. + +```yaml +providerOptions: + lambda: + - name: + target: + runAsIamRole: + handler: + runtime: +``` + +{{< include "dep-file/lambda-provider-options.md" >}} + +```yaml +targets: + dev: + account: + deployAsIamRole: + region: us-east-1 + strategy: allAtOnce + staging: + account: + deployAsIamRole: + region: us-east-2 + strategy: allAtOnce + constraints: + dependsOn: + - dev + prod-west-1: + account: + deployAsIamRole: + region: us-west-1 + strategy: allAtOnce + constraints: + dependsOn: + - staging + prod-west-2: + account: + deployAsIamRole: + region: us-west-2 + strategy: allAtOnce + constraints: + dependsOn: + - staging +artifacts: + - functionName: just-sweet-potatoes-us-east-1 + path: s3://armory-demo-east-1/just-sweet-potatoes.zip + type: zipFile + - functionName: just-sweet-potatoes-us-east-2 + path: s3://armory-demo-east-2/just-sweet-potatoes.zip + type: zipFile + - functionName: just-sweet-potatoes-prod-west-1 + path: s3://armory-demo-west-1/just-sweet-potatoes.zip + type: zipFile + - functionName: just-sweet-potatoes-prod-west-2 + path: s3://armory-demo-west-2/just-sweet-potatoes.zip + type: zipFile +providerOptions: + lambda: + - name: just-sweet-potatoes-us-east-1 + target: dev + runAsIamRole: + handler: index.handler + runtime: python3.10 + - name: just-sweet-potatoes-us-east-2 + target: staging + runAsIamRole: + handler: index.handler + runtime: python3.10 + - name: just-sweet-potatoes-prod-west-1 + target: prod-west-1 + runAsIamRole: + handler: index.handler + runtime: python3.10 + - name: just-sweet-potatoes-prod-west-2 + target: prod-west-2 + runAsIamRole: + handler: index.handler + runtime: python3.10 +``` + +## Multiple AWS Accounts example + +This illustrates deploying a function to the same region in multiple AWS Accounts. + +```yaml +targets: + Lab: + account: armory-lab + deployAsIamRole: "arn:aws:iam::111111111111:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + Staging: + account: armory-core + deployAsIamRole: "arn:aws:iam::222222222222:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + constraints: + dependsOn: + - Lab + afterDeployment: + - runWebhook: + name: Integration-Tests + Audit: + account: armory-audit + deployAsIamRole: "arn:aws:iam::333333333333:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + constraints: + dependsOn: + - Lab + afterDeployment: + - runWebhook: + name: Audit-Analysis + ITSec: + account: armory-itsec + deployAsIamRole: "arn:aws:iam::444444444444:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + constraints: + dependsOn: + - Lab + afterDeployment: + - runWebhook: + name: Security-Scans + Prod-West-2: + account: armory-prod + deployAsIamRole: "arn:aws:iam::555555555555:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + constraints: + dependsOn: + - Staging + - Audit + - ITSec + beforeDeployment: + - runWebhook: + name: Send-Slack-Deployment-Approval-Required + - pause: + untilApproved: true +artifacts: + - functionName: hello-world-python + path: s3://armory-demos-us-west-2/hello-world-python.zip + type: zipFile +providerOptions: + lambda: + - target: Lab + name: hello-world-python + runAsIamRole: arn:aws:iam::111111111111:role/LambdaExecutionRole + handler: lambda_function.lambda_handler + runtime: python3.10 + - target: Staging + name: hello-world-python + runAsIamRole: arn:aws:iam::222222222222:role/LambdaExecutionRole + handler: lambda_function.lambda_handler + runtime: python3.10 + - target: Audit + name: hello-world-python + runAsIamRole: arn:aws:iam::333333333333:role/LambdaExecutionRole + handler: lambda_function.lambda_handler + runtime: python3.10 + - target: ITSec + name: hello-world-python + runAsIamRole: arn:aws:iam::444444444444:role/LambdaExecutionRole + handler: lambda_function.lambda_handler + runtime: python3.10 + - target: Prod-West-2 + name: hello-world-python + runAsIamRole: arn:aws:iam::555555555555:role/LambdaExecutionRole + handler: lambda_function.lambda_handler + runtime: python3.10 +``` + +The S3 bucket has a policy that makes it accessible to multiple accounts in the same organization. diff --git a/content/en/reference/deployment/config-file/manifests.md b/content/en/reference/deployment/config-file/manifests.md index 3bb84af1..5960e4f0 100644 --- a/content/en/reference/deployment/config-file/manifests.md +++ b/content/en/reference/deployment/config-file/manifests.md @@ -1,9 +1,11 @@ --- -title: Manifests Config +title: Manifests Config (Kubernetes) description: > 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. --- +**Kubernetes Only** + ## Manifests section `manifests.` diff --git a/content/en/reference/deployment/config-file/strategies.md b/content/en/reference/deployment/config-file/strategies.md index 3c50ac38..ff715b30 100644 --- a/content/en/reference/deployment/config-file/strategies.md +++ b/content/en/reference/deployment/config-file/strategies.md @@ -345,6 +345,8 @@ All the queries must pass for the step as a whole to be considered a success. ## Blue/green fields +**Kubernetes Only** + ```yaml strategies: diff --git a/content/en/reference/deployment/config-file/targets.md b/content/en/reference/deployment/config-file/targets.md index 900cdbc8..0e7f1b5c 100644 --- a/content/en/reference/deployment/config-file/targets.md +++ b/content/en/reference/deployment/config-file/targets.md @@ -1,24 +1,41 @@ --- title: Targets Config description: > - Declare your deployment targets: account, namespace, and strategy to use. Configure target constraints such as `dependsOn`, `beforeDeployment`, and `afterDeployment` with pause, webhoook, and analysis conditions. + Declare your Kubernetes or AWS Lambda deployment targets. --- ## Targets config overview -In the `targets.` config block, you define where and how you want to deploy an app. You can specify multiple targets. Provide unique descriptive names for each environment to which you are deploying. +In the `targets.` config block, you define where and how you want to deploy your Kubernetes app or AWS Lambda function. -```yaml +You can specify multiple targets. Provide unique descriptive names for each target to which you are deploying. + +{{< cardpane >}} +{{< card code=true lang="yaml" header="AWS Lambda" >}} targets: : - account: - namespace: - strategy: - constraints: -``` + account: + deployAsIamRole: + region: + strategy: + constraints: +{{< /card >}} +{{< card code=true lang="yaml" header="Kubernetes" >}} +targets: + : + account: + namespace: + strategy: + constraints: +{{< /card >}} +{{< /cardpane >}} + +## Common fields -## Name +These fields are the same whether your target is AWS Lambda or a Kubernetes cluster. + +### Name `targets.`: A descriptive name for this deployment, such as the name of the environment you want to deploy to. @@ -30,53 +47,93 @@ targets: ... ``` -## Account (cluster) - -`targets..account`: The account name that a target Kubernetes cluster got assigned when you installed the Remote Network Agent (RNA) on it. Specifically, it is the value for the `agentIdentifier` parameter. Note that older versions of the RNA used the `agent-k8s.accountName` parameter. +### Strategy -This name must match an existing cluster because Armory CD-as-a-Service uses the identifier to determine which cluster to deploy to. +`targets..strategy`: This is the name of the strategy that you want to use to deploy your app. You define the strategy and its behavior in the `strategies` block. -For example, this snippet configures a deployment to an environment named `prod` that is hosted on a cluster named `prod-cluster-west`: +For example, this snippet configures a deployment to use the `canary-wait-til-approved` strategy: ```yaml targets: prod: account: prod-cluster-west -... + strategy: canary-wait-til-approved ``` -## Namespace +Read more about how this config is defined and used in the [strategies]({{< ref "reference/deployment/config-file/strategies" >}}) section. -`targets..namespace` +## AWS Lambda fields -Optional but recommended +```yaml +: + account: + deployAsIamRole: + region: +``` -The namespace on the target Kubernetes cluster that you want to deploy to. This field overrides any namespaces defined in your manifests. +### Account (AWS) -For example, this snippet overrides the namespace in your manifest and deploys the app to a namespace called `overflow`: +`targets..account`: A descriptive name for your AWS Account. + +```yaml +Prod-West-1: + account: armory-docs-dev +``` + +### Deploy as IAM Role + +`targets..deployAsIamRole`: The ARN of the [ArmoryRole]({{< ref "deployment/lambda/create-iam-role-lambda" + >}}) +that CD-as-a-Service assumes to deploy your function. + +```yaml +Prod-West-1: + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole +``` + +### AWS Region + +`targets..region`: The AWS Region to deploy your function to. + +```yaml +Prod-West-1: + region: us-west-1 +``` + +## Kubernetes fields + +### Account (cluster) + +`targets..account`: The account name that a target Kubernetes cluster got assigned when you installed the Remote Network Agent (RNA) on it. Specifically, it is the value for the `agentIdentifier` parameter. Note that older versions of the RNA used the `agent-k8s.accountName` parameter. + +This name must match an existing cluster because Armory CD-as-a-Service uses the identifier to determine which cluster to deploy to. + +For example, this snippet configures a deployment to an environment named `prod` that is hosted on a cluster named `prod-cluster-west`: ```yaml targets: prod: account: prod-cluster-west - namespace: overflow +... ``` -## Strategy +### Namespace -`targets..strategy`: This is the name of the strategy that you want to use to deploy your app. You define the strategy and its behavior in the `strategies` block. +`targets..namespace` -For example, this snippet configures a deployment to use the `canary-wait-til-approved` strategy: +Optional but recommended + +The namespace on the target Kubernetes cluster that you want to deploy to. This field overrides any namespaces defined in your manifests. + +For example, this snippet overrides the namespace in your manifest and deploys the app to a namespace called `overflow`: ```yaml targets: prod: account: prod-cluster-west namespace: overflow - strategy: canary-wait-til-approved ``` -Read more about how this config is defined and used in the [strategies]({{< ref "reference/deployment/config-file/strategies" >}}) section. ## Constraints @@ -88,6 +145,30 @@ Optional > Constraints are evaluated in parallel. +{{< tabpane text=true right=true >}} + {{% tab header="**Target**:" disabled=true /%}} + {{% tab header="AWS Lambda" %}} +```yaml +targets: + prod: + account: aws-docs-dev + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-east-1 + strategy: canary-wait-til-approved + constraints: + dependsOn: [""] + beforeDeployment: + - pause: + untilApproved: true + - pause: + duration: + unit: + afterDeployment: + - runWebhook: + name: +``` + {{% /tab %}} + {{% tab header="Kubernetes" %}} ```yaml targets: prod: @@ -106,25 +187,52 @@ targets: - runWebhook: name: ``` + {{% /tab %}} + +{{< /tabpane >}} + ### Depends on Optional -`targets..constraints.dependsOn`: A comma-separated list of deployments that must finish before this deployment can start. You can use this option to sequence deployments. Deployments with the same `dependsOn` criteria execute in parallel. For example, you can make it so that a deployment to prod cannot happen until a staging deployment finishes successfully. +`targets..constraints.dependsOn`: A list of deployments that must finish before this deployment can start. You can use this option to sequence deployments. Deployments with the same `dependsOn` criteria execute in parallel. For example, you can make it so that a deployment to prod cannot happen until a staging deployment finishes successfully. The following example shows a deployment to `prod-west` that cannot start until the `dev-west` target finishes: +{{< tabpane text=true right=true >}} + {{% tab header="**Target**:" disabled=true /%}} + {{% tab header="AWS Lambda" %}} ```yaml targets: - prod: + prod-west: + account: aws-docs-dev + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-west-1 + strategy: canary-wait-til-approved + constraints: + dependsOn: + - ITSec + - Audit +``` + {{% /tab %}} + {{% tab header="Kubernetes" %}} +```yaml +targets: + prod-west: account: prod-west namespace: overflow strategy: canary-wait-til-approved constraints: - dependsOn: ["dev-west"] + dependsOn: + - ITSec + - Audit ``` + {{% /tab %}} +{{< /tabpane >}} + + ### Before and after deployment Optional @@ -141,6 +249,31 @@ You can specify a pause that waits for a manual approval or a certain amount of **Pause until manual approval** +{{< tabpane text=true right=true >}} + {{% tab header="**Target**:" disabled=true /%}} + {{% tab header="AWS Lambda" %}} +```yaml +targets: + prod: + account: aws-docs-dev + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-west-1 + strategy: canary-wait-til-approved + constraints: + dependsOn: ["dev-west"] + beforeDeployment: + - pause: + untilApproved: true + approvalExpiration: + duration: 60 + unit: seconds +``` + +- `pause.untilApproved`: Set to true +- `pause.approvalExpiration`: (Optional) Timeout configuration; when expired the ongoing deployment is cancelled + + {{% /tab %}} + {{% tab header="Kubernetes" %}} ```yaml targets: prod: @@ -161,9 +294,32 @@ targets: - `pause.untilApproved`: Set to true - `pause.requiresRoles`: (Optional) List of RBAC roles that can issue a manual approval - `pause.approvalExpiration`: (Optional) Timeout configuration; when expired the ongoing deployment is cancelled + + {{% /tab %}} + +{{< /tabpane >}} **Pause for a certain amount of time** +{{< tabpane text=true right=true >}} + {{% tab header="**Target**:" disabled=true /%}} + {{% tab header="AWS Lambda" %}} +```yaml +targets: + prod: + account: aws-docs-dev + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-west-1 + strategy: canary-wait-til-approved + constraints: + dependsOn: ["dev-west"] + beforeDeployment: + - pause: + duration: 60 + unit: seconds +``` + {{% /tab %}} + {{% tab header="Kubernetes" %}} ```yaml targets: prod: @@ -177,14 +333,40 @@ targets: duration: 60 unit: seconds ``` + {{% /tab %}} + +{{< /tabpane >}} - `pause.duration` set to an integer value for the amount of time to wait before starting after the `dependsOn` condition is met. - `pause.unit` set to `seconds`, `minutes` or `hours` to indicate the unit of time to wait. #### Run a webhook -In the following example, before deploying to the `prod-cluster-west` target, CD-as-a-Service pauses deployment for manual approval by an Org Admin and also calls a webhook that sends a Slack notification. You declare the webhook in the [webhooks section] +In the following example, before deploying to the `prod-cluster-west` target, CD-as-a-Service pauses deployment for manual approval by an Org Admin and also calls a webhook that sends a Slack notification. You declare the webhook in the [webhooks section]({{< ref "reference/deployment/config-file/webhooks" >}}). +{{< tabpane text=true right=true >}} + {{% tab header="**Target**:" disabled=true /%}} + {{% tab header="AWS Lambda" %}} +```yaml +targets: + prod: + account: aws-docs-dev + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-west-1 + strategy: canary-wait-til-approved + constraints: + dependsOn: ["staging"] + beforeDeployment: + - pause: + untilApproved: true + approvalExpiration: + duration: 24 + unit: hours + - runWebhook: + name: Send_Slack_Deployment_Approval_Required +``` + {{% /tab %}} + {{% tab header="Kubernetes" %}} ```yaml targets: prod: @@ -204,10 +386,17 @@ targets: - runWebhook: name: Send_Slack_Deployment_Approval_Required ``` + {{% /tab %}} + +{{< /tabpane >}} + + #### Analysis -In this example, CD-as-a-Service performs a [canary analysis]({{< ref "reference/canary-analysis-query" >}}) after deploying to the target. You declare your query in the [analysis section]{{< ref "reference/deployment/config-file/analysis" >}} and then add the name to the `queries` list. +**Kubernetes Only** + +In this example, CD-as-a-Service performs a [canary analysis]({{< ref "reference/canary-analysis-query" >}}) after deploying to the target. You declare your query in the [analysis section]({{< ref "reference/deployment/config-file/analysis" >}}) and then add the name to the `queries` list. ```yaml targets: @@ -229,11 +418,117 @@ targets: - avgCPUUsage ``` -## Example + +## AWS Lambda example + +{{< tabpane text=true right=true >}} + {{% tab header="**AWS Accounts**:" disabled=true /%}} + {{% tab header="Single" %}} +```yaml +targets: + Production-1: + account: arn:aws:iam::111111111111:role/ArmoryRole + constraints: + dependsOn: + - staging + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-east-2 + strategy: allAtOnce + Production-2: + account: arn:aws:iam::111111111111:role/ArmoryRole + constraints: + dependsOn: + - staging + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-west-1 + strategy: allAtOnce + staging: + account: arn:aws:iam::111111111111:role/ArmoryRole + constraints: + beforeDeployment: + - runWebhook: + name: Send_Slack_Deployment_Approval_Required + afterDeployment: + - runWebhook: + name: Integration_Tests + - pause: + untilApproved: true + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-east-1 + strategy: allAtOnce +``` + {{% /tab %}} + {{% tab header="Multiple" %}} + +```yaml +targets: + Lab: + account: armory-lab + deployAsIamRole: "arn:aws:iam::111111111111:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + Staging: + account: armory-core + deployAsIamRole: "arn:aws:iam::222222222222:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + constraints: + dependsOn: + - Lab + afterDeployment: + - runWebhook: + name: Integration-Tests + Audit: + account: armory-audit + deployAsIamRole: "arn:aws:iam::333333333333:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + constraints: + dependsOn: + - Lab + afterDeployment: + - runWebhook: + name: Audit-Analysis + ITSec: + account: armory-itsec + deployAsIamRole: "arn:aws:iam::444444444444:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + constraints: + dependsOn: + - Lab + afterDeployment: + - runWebhook: + name: Security-Scans + Prod-West-2: + account: armory-prod + deployAsIamRole: "arn:aws:iam::555555555555:role/ArmoryRole" + region: us-west-2 + strategy: rollingDeployment + constraints: + dependsOn: + - Staging + - Audit + - ITSec + beforeDeployment: + - runWebhook: + name: Send-Slack-Deployment-Approval-Required + - pause: + untilApproved: true +``` + {{% /tab %}} + +{{< /tabpane >}} + + + +## Kubernetes example In this example, there are four targets: `dev`, `infosec`, `staging`, and `prod-west`. After you deploy code to `infosec` and `staging`, you want to run jobs against those targets. If either of those jobs fails, CD-as-a-Service does not deploy to `prod-west`. -`prod-west`'s `afterDeployment` conditions perform an analysis and call a webhook that sends a "deployment complete" notification. If the `analysis` condition fails, CD-as-a-Service rolls back the target deployment. +`prod-west`'s `afterDeployment` conditions perform an analysis and call a webhook that sends a "deployment complete" notification. + +>If the `analysis` condition fails, CD-as-a-Service does **not** roll back the prod-west deployment because the analysis condition is in an `afterdeployment` constraint. However, if you include the `analysis` step in your strategy and that `analysis` step fails, CD-as-a-Service **does** roll back the deployment. ```yaml targets: @@ -288,4 +583,3 @@ targets: namespace: cdaas-prod strategy: mycanary ``` - diff --git a/content/en/reference/deployment/config-file/traffic-management.md b/content/en/reference/deployment/config-file/traffic-management.md index 71641b0a..6f47600a 100644 --- a/content/en/reference/deployment/config-file/traffic-management.md +++ b/content/en/reference/deployment/config-file/traffic-management.md @@ -1,20 +1,37 @@ --- title: Traffic Management Config description: > - Declare Istio or Linkerd traffic management for all or specific 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 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. --- ## Traffic management section `trafficManagement.` -You configure your service mesh per target in this section. If you omit the `target` entry, CD-as-a-Service applies the config to all targets. +## AWS Lambda + +You declare your AWS Lambda alias per target in this section. CD-as-a-Service uses [aliases](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) when routing traffic from the previous version to the latest version of your function. ```yaml trafficManagement: - targets: [""] + alias: + - functionName: + aliasName: ``` +* `targets`: the list of targets using this alias +* `functionName`: This is the same value as `artifacts.functionName` and `providerOptions.lambda.name`. See {{< linkWithTitle "reference/deployment/config-file/artifacts.md" >}} for details on those sections. +* `aliasName`: The alias name, such as "live-version". Your function's alias must already exist in the AWS Lambda console. + +This example declares a traffic split canary strategy. You must declare your function's alias for each deployment target that uses the traffic split strategy. + +{{< readfile file="/includes/code/lambda-traffic-split-snippet.yaml" code="true" lang="yaml" >}} + +## Kubernetes + +You configure your service mesh per target in this section. + ### SMI targets `trafficManagement.targets.smi` diff --git a/content/en/troubleshooting/lambda.md b/content/en/troubleshooting/lambda.md new file mode 100644 index 00000000..7f1ec133 --- /dev/null +++ b/content/en/troubleshooting/lambda.md @@ -0,0 +1,86 @@ +--- +title: Troubleshoot AWS Lambda Deployment +linkTitle: AWS Lambda +weight: 1 +description: > + Solutions for issues you might encounter while deploying AWS Lambda functions using the Armory CD-as-a-Service. +--- + +## AWS Lamba Troubleshooting + +CD-as-a-Service returns errors thrown by AWS Lambda. If you encounter an error, be sure to check the AWS Lambda docs' [troubleshooting section](https://docs.aws.amazon.com/lambda/latest/dg/lambda-troubleshooting.html). + +## InvalidParameterValueException / PermanentRedirect + +```yaml +AWSCreateLambdaError: operation error +Lambda: CreateFunction, https response error +StatusCode: 400, +RequestID: ce98341e-8aa6-4c42-99e1-544245303295, +InvalidParameterValueException: Error occurred while GetObject. +S3 Error Code: PermanentRedirect. +S3 Error Message: The bucket is in this region: us-east-2. Please use this region to retry the request +``` + +You need to have an S3 bucket with your function archive in the region you want to deploy your function to. This is an AWS constraint. + +For example (same AWS Account): + +| Function | Target and Region | S3 Bucket Region | Bucket Name | Function Path | +|-----------------|-------------------|------------------|---------------|------------------------------------| +| hello-world.zip | Dev: us-east-1 | us-east-1 | lambda-us-east-1 | s3://lambda-us-east-1/hello-world.zip | +| hello-world.zip | Staging: us-east-2 | us-east-2 | lambda-us-east-1 | s3://lambda-us-east-2/hello-world.zip | +| hello-world.zip | Infosec: us-west-1 | us-west-1 | lambda-us-east-1 | s3://lambda-us-west-1/hello-world.zip | +| hello-world.zip | Prod: us-west-2 | us-west-2 | lambda-us-east-1 | s3://lambda-us-west-2/hello-world.zip | +| hello-world.zip | Prod: eu-central-1 | eu-central-1 | lambda-eu-central-1 | s3://lambda-eu-central-1/hello-world.zip | + +For more details, see the AWS Lambda [InvalidParameterValueException](https://docs.aws.amazon.com/lambda/latest/dg/troubleshooting-deployment.html#troubleshooting-deployment-InvalidParameterValueException1) and [PermanentRedirect](https://docs.aws.amazon.com/lambda/latest/dg/troubleshooting-deployment.html#troubleshooting-deployment-PermanentRedirect) troubleshooting docs. + +## ResourceConflictException + +```yaml +AWSUpdateLambdaError: operation error +Lambda: UpdateFunctionCode, https response error +StatusCode: 409, +RequestID: 8027c7ee-0762-4027-a238-2c636a716d48, +ResourceConflictException: Conflict due to concurrent requests on this function. Please try this request again. +``` + +You see this error when you have concurrent deployments to same region. + +For example, deploying this config results in a `ResourceConflictException` error. The `staging` and `audit` targets both deploy to `us-east-2` and depend on `dev`, so CD-as-a-Service deploys them concurrently. + +```yaml +version: v1 +kind: lambda +application: Sweet Potato Lambda +description: Sweet Potato facts from a Lambda function +deploymentConfig: + timeout: + unit: minutes + duration: 10 +targets: + dev: + account: armory-docs-dev + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-east-1 + strategy: allAtOnce + staging: + account: armory-docs-dev + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-east-2 + strategy: allAtOnce + constraints: + dependsOn: + - dev + audit: + account: armory-docs-dev + deployAsIamRole: arn:aws:iam::111111111111:role/ArmoryRole + region: us-east-2 + strategy: allAtOnce + constraints: + dependsOn: + - dev +``` + +The fix for this is to deploy `audit` to a different region or a different AWS Account. \ No newline at end of file