From 4eb131d4019baa70a7877453a6a5e7a22aae588f Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 15 May 2024 16:27:30 +0530 Subject: [PATCH 01/43] Adding new pattern for Crossplane Argocd GitOps --- bin/aws-addon-clusters.ts | 45 ++ bin/get-ready-for-test-issues.ts | 54 ++ bin/multi-cluster-options.ts | 23 + bin/multi-cluster-pipeline.ts | 145 +++++ docs/patterns/crosplane-argocd-gitops.md | 182 ++++++ docs/patterns/images/amd-1.29-addon.png | Bin 0 -> 108320 bytes docs/patterns/images/arm-1.29-addon.png | Bin 0 -> 113304 bytes .../images/aws_secret_codepipeline.png | Bin 0 -> 73525 bytes docs/patterns/images/codepipeline1.png | Bin 0 -> 83821 bytes docs/patterns/images/codepipeline2.png | Bin 0 -> 89677 bytes docs/patterns/pipeline-multi-env-gitops.md | 602 ++++++++++++++++-- .../aws-addon-clusters-stack.ts | 16 + .../common/construct-utils.ts | 48 ++ .../cluster-secret-store-addon.ts | 41 ++ .../crossplane-aws-provider-addon.ts | 81 +++ .../crossplane-helm-provider-addon.ts | 80 +++ .../crossplane-k8s-provider-addon.ts | 79 +++ .../custom-addons/mgmt-role-teams.ts | 13 + .../custom-addons/sleek-addon.ts | 99 +++ .../custom-addons/upbound-crossplane-addon.ts | 89 +++ .../management-cluster-builder.ts | 54 ++ 21 files changed, 1588 insertions(+), 63 deletions(-) create mode 100644 bin/aws-addon-clusters.ts create mode 100644 bin/get-ready-for-test-issues.ts create mode 100644 bin/multi-cluster-options.ts create mode 100644 bin/multi-cluster-pipeline.ts create mode 100644 docs/patterns/crosplane-argocd-gitops.md create mode 100644 docs/patterns/images/amd-1.29-addon.png create mode 100644 docs/patterns/images/arm-1.29-addon.png create mode 100644 docs/patterns/images/aws_secret_codepipeline.png create mode 100644 docs/patterns/images/codepipeline1.png create mode 100644 docs/patterns/images/codepipeline2.png create mode 100644 lib/crossplane-argocd-gitops/aws-addon-clusters-stack.ts create mode 100644 lib/crossplane-argocd-gitops/common/construct-utils.ts create mode 100644 lib/crossplane-argocd-gitops/custom-addons/cluster-secret-store-addon.ts create mode 100644 lib/crossplane-argocd-gitops/custom-addons/crossplane-aws-provider-addon.ts create mode 100644 lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts create mode 100644 lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts create mode 100644 lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams.ts create mode 100644 lib/crossplane-argocd-gitops/custom-addons/sleek-addon.ts create mode 100644 lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts create mode 100644 lib/crossplane-argocd-gitops/management-cluster-builder.ts diff --git a/bin/aws-addon-clusters.ts b/bin/aws-addon-clusters.ts new file mode 100644 index 00000000..b7a684b2 --- /dev/null +++ b/bin/aws-addon-clusters.ts @@ -0,0 +1,45 @@ +#!/usr/bin/env node +import * as cdk from 'aws-cdk-lib'; +import {K8S_VERSIONS_DEV, MultiClusterOptions} from "./multi-cluster-options"; +import {CapacityType, KubernetesVersion} from "aws-cdk-lib/aws-eks"; +import MultiClusterPipelineConstruct from "./multi-cluster-pipeline"; +import * as blueprints from "@aws-quickstart/eks-blueprints"; +import * as eks from "aws-cdk-lib/aws-eks"; +import * as ec2 from "aws-cdk-lib/aws-ec2"; + +const app = new cdk.App(); + +const account = process.env.CDK_DEFAULT_ACCOUNT ?? ""; +const region = process.env.CDK_DEFAULT_REGION ?? "us-east-1"; +const minSize = parseInt(process.env.NODEGROUP_MIN ?? "1"); +const maxSize = parseInt(process.env.NODEGROUP_MAX ?? "3"); +const desiredSize = parseInt(process.env.NODEGROUP_DESIRED ?? "1"); +const gitHubSecret = process.env.GITHUB_SECRET ?? "cdk_blueprints_github_secret"; + +const env : MultiClusterOptions = { + account, + region, + minSize, + maxSize, + desiredSize, + gitHubSecret, + nodeGroupCapacityType: CapacityType.ON_DEMAND, + k8sVersions: K8S_VERSIONS_DEV // K8S_VERSIONS_PROD for full deploy +} + + +const mngProps: blueprints.MngClusterProviderProps = { + version: KubernetesVersion.V1_28, + instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE2)], + amiType: eks.NodegroupAmiType.AL2_X86_64, + desiredSize: 2, + maxSize: 3, +}; + +console.info("Running CDK with id: addon-tester" ); +console.info("Running CDK with: " + JSON.stringify(env)); + +new MultiClusterPipelineConstruct().buildAsync(app, "addon-tester", env , mngProps).catch( + (e) => console.log("Pipeline construct failed because of error ", e) +); + diff --git a/bin/get-ready-for-test-issues.ts b/bin/get-ready-for-test-issues.ts new file mode 100644 index 00000000..5109b7a3 --- /dev/null +++ b/bin/get-ready-for-test-issues.ts @@ -0,0 +1,54 @@ +import * as AWS from "@aws-sdk/client-secrets-manager"; +import { Octokit } from '@octokit/rest' + +export const READY_FOR_TEST= "Ready for test"; + +/** + * Invoke with + * @param region process.env.CDK_DEFAULT_REGION + * @param secretName process.env.GITHUB_SECRET + * @param repo "jalawala" + * @param owner "aws-eks-addon-publication" + */ +export async function getReadyForTestAddons(region: string, secretName: string, repo: string, owner: string){ + const issues = await getReadyForTestIssues(region, secretName, repo, owner) as Issue[]; + // TODO do something with this addon + issues.forEach(issue => console.log(issue.number + ", " + issue.body)); +} + +async function getReadyForTestIssues(region: string, secretName: string, repo: string, owner: string){ + const sm = new AWS.SecretsManager({region}); + + const accessToken = await getGitHubAccessToken(sm, secretName); + const octokit = new Octokit({ auth: accessToken }); + + const getIssuesRequest = { + headers: { + 'X-GitHub-Api-Version': '2022-11-28' + }, + owner, + repo, + labels: READY_FOR_TEST + }; + + const responsePromise = octokit.request("GET /repos/{owner}/{repo}/issues", getIssuesRequest); + + return responsePromise + .then((response)=> response.data as Issue[]) + .catch((error)=>{console.error(`Create issue error: ${error}`)}) +} + +type Issue = { + number: number; + body: string; +} + +async function getGitHubAccessToken(sm : AWS.SecretsManager, secretName : string) { + const secret = await sm.getSecretValue({ SecretId: secretName }); + const secretString = secret.SecretString; + if (typeof secretString === 'string') { + return secretString; + } else { + throw new Error('SecretString is not a string.'); + } +} diff --git a/bin/multi-cluster-options.ts b/bin/multi-cluster-options.ts new file mode 100644 index 00000000..762a6263 --- /dev/null +++ b/bin/multi-cluster-options.ts @@ -0,0 +1,23 @@ +import {CapacityType, KubernetesVersion} from "aws-cdk-lib/aws-eks"; +import * as ec2 from "aws-cdk-lib/aws-ec2"; +import * as eks from "aws-cdk-lib/aws-eks"; + +export const K8S_VERSIONS_PROD : KubernetesVersion[] = [KubernetesVersion.V1_25, KubernetesVersion.V1_26, + KubernetesVersion.V1_27, KubernetesVersion.V1_28]; // KubernetesVersion.V1_29 // when the time comes +//export const K8S_VERSIONS_DEV : KubernetesVersion[] = [ KubernetesVersion.V1_26 ,KubernetesVersion.V1_27, KubernetesVersion.V1_28, KubernetesVersion.of("1.29")]; + +export const K8S_VERSIONS_DEV : KubernetesVersion[] = [ KubernetesVersion.of("1.29")]; + + +export interface MultiClusterOptions { + readonly account: string; + readonly region: string; + minSize?: number; + maxSize?: number; + desiredSize?: number; + gitHubSecret?: string; + nodeGroupCapacityType: CapacityType; + instanceTypes?: ec2.InstanceType[]; + amiType?: eks.NodegroupAmiType; + k8sVersions: KubernetesVersion[]; +} diff --git a/bin/multi-cluster-pipeline.ts b/bin/multi-cluster-pipeline.ts new file mode 100644 index 00000000..d764ad86 --- /dev/null +++ b/bin/multi-cluster-pipeline.ts @@ -0,0 +1,145 @@ +import { Construct } from "constructs"; +import * as blueprints from '@aws-quickstart/eks-blueprints'; +import {K8S_VERSIONS_DEV, MultiClusterOptions} from "./multi-cluster-options"; +import {NodegroupAmiType} from "aws-cdk-lib/aws-eks"; +import * as ec2 from "aws-cdk-lib/aws-ec2"; +import ManagementClusterBuilder from "../lib/crossplane-argocd-gitops/management-cluster-builder"; +import {ProviderMgmtRoleTeam} from "../lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams"; +import {GenericClusterProvider, LookupRoleProvider} from "@aws-quickstart/eks-blueprints"; +import {IRole} from "aws-cdk-lib/aws-iam"; +import * as iam from 'aws-cdk-lib/aws-iam'; +import {ManagedNodeGroup} from "@aws-quickstart/eks-blueprints/dist/cluster-providers/types"; + +export default class MultiClusterPipelineConstruct { + async buildAsync(scope: Construct, id: string, props: MultiClusterOptions, mngProps: blueprints.MngClusterProviderProps) { + const k8sVersions = props.k8sVersions ?? K8S_VERSIONS_DEV; + const region :string = props.region; + const account : string = props.account; + + const gitProps = { + owner :'jalawala', + secretName : props.gitHubSecret ?? 'github-access-eks-addon', + repoName : 'aws-addon-clusters-main', + revision : 'main' // use this to target a certain branch for deployment + }; + + + await this.prevalidateSecrets(gitProps.secretName, region); + + const addOns: Array = [ + new blueprints.ExternalsSecretsAddOn({ + namespace: "external-secrets", + values: { webhook: { port: 9443 } } + }) + ] + + const clusterProps: blueprints.MngClusterProviderProps = { + minSize: props.minSize, + maxSize: props.maxSize, + desiredSize: props.desiredSize, + nodeGroupCapacityType: props.nodeGroupCapacityType, + } + + const stages : blueprints.StackStage[] = []; + const vpcProvider= new blueprints.VpcProvider(); + + const baseBlueprint = blueprints.EksBlueprint.builder() + .resourceProvider(blueprints.GlobalResources.Vpc, vpcProvider) + .resourceProvider('eks-connector-role', new LookupRoleProvider('eks-connector-role')) + .account(account) + .addOns(...addOns) + .teams(new ProviderMgmtRoleTeam(account)) + .useDefaultSecretEncryption(true); + + const mgmtCluster = new ManagementClusterBuilder(account, region) + .create(scope, 'management-cluster', mngProps) + .account(account) + .region(region) + .resourceProvider(blueprints.GlobalResources.Vpc, vpcProvider); + + const mgmtStage = [{id: `mgmt-cluster-stage` , stackBuilder: mgmtCluster}]; + + for(const k8sVersion of k8sVersions) { + baseBlueprint.version(k8sVersion); + + const blueprintAMD = baseBlueprint + .clusterProvider( + new GenericClusterProvider( { + version: k8sVersion, + mastersRole: blueprints.getNamedResource('eks-connector-role') as IRole, + managedNodeGroups : [addManagedNodeGroup( 'amd-tst-ng',{...clusterProps, + amiType : NodegroupAmiType.AL2_X86_64, + instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE)]})] + }) + ); + stages.push({ + id: `amd-` + k8sVersion.version.replace(".", "-"), + stackBuilder : blueprintAMD.clone(props.region).id(`amd-` + k8sVersion.version.replace(".", "-")) + }); + + const blueprintARM = baseBlueprint + .clusterProvider( + new GenericClusterProvider( { + version: k8sVersion, + mastersRole: blueprints.getNamedResource('eks-connector-role') as IRole, + managedNodeGroups : [addManagedNodeGroup('arm-tst-ng',{...clusterProps, + amiType : NodegroupAmiType.AL2_ARM_64, + instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M7G, ec2.InstanceSize.XLARGE)]})] + }) + ); + stages.push({ + id: `arm-` + k8sVersion.version.replace(".", "-"), + stackBuilder : blueprintARM.clone(props.region).id(`arm-` + k8sVersion.version.replace(".", "-")) + }); + } + + blueprints.CodePipelineStack.builder() + .name(id) + .owner(gitProps.owner) + .codeBuildPolicies( + ([ + new iam.PolicyStatement({ + resources: ["*"], + actions: [ + "codebuild:*", + "sts:AssumeRole", + "secretsmanager:GetSecretValue", + "secretsmanager:ListSecrets", + "secretsmanager:DescribeSecret", + "cloudformation:*" + ] + }) + ]) + ) + .repository({ + targetRevision : gitProps.revision, + credentialsSecretName: gitProps.secretName, + repoUrl: gitProps.repoName + } + ) + .wave({ id: `mgmt-cluster-stage`, stages: mgmtStage }) + .wave({ id: `${id}-wave`, stages }) + .build(scope, id, { env: { account, region } }); + } + + async prevalidateSecrets(secretName: string, region: string) { + try { + await blueprints.utils.validateSecret(secretName, region); + } + catch(error) { + throw new Error(`${secretName} secret must be setup in AWS Secrets Manager in ${region} for the GitHub pipeline. + * @see https://docs.aws.amazon.com/codepipeline/latest/userguide/GitHub-create-personal-token-CLI.html`); + } + } +} + +function addManagedNodeGroup(id: string, clusterProps: blueprints.MngClusterProviderProps): ManagedNodeGroup { + return { + id, + minSize: clusterProps.minSize, + maxSize: clusterProps.maxSize, + amiType: clusterProps.amiType, + instanceTypes: clusterProps.instanceTypes, + desiredSize: clusterProps.desiredSize + }; +} diff --git a/docs/patterns/crosplane-argocd-gitops.md b/docs/patterns/crosplane-argocd-gitops.md new file mode 100644 index 00000000..47a7f860 --- /dev/null +++ b/docs/patterns/crosplane-argocd-gitops.md @@ -0,0 +1,182 @@ +# Secure Ingress using Cognito Pattern + +## Objective + +The objective of this pattern is to provide a secure authentication mechanism for customer applications using Amazon Cognito, ALB, and Route53, ensuring that only authorized users can access the application. The Kubecost tool is used as a reference or sample implementation to demonstrate the pattern's capabilities. + +To achieve this objective, the pattern utilizes Amazon Cognito to provide user authentication for the application's ingress, with ALB's built-in support for user authentication handling routine tasks such as user sign-up, sign-in, and sign-out. In addition to Amazon Cognito, ALB integrates with any OpenID Connect compliant identity provider (IdP) for a single sign-on experience across applications. ACM and Route53 provide SSL/TLS certificates to secure connections to ALB and authenticate users, preventing sensitive information from being intercepted or tampered with during transmission. + +The pattern also leverages Kubecost to provide real-time cost visibility and analysis for Kubernetes clusters, enabling customers to make informed decisions about resource allocation and utilization. This pattern can be easily adapted and extended to secure ingress for any application, providing a unified and secure solution for user authentication while optimizing costs. By implementing this solution, Amazon EKS customers can have a reliable, scalable, and secure authentication mechanism for their applications, with a cost optimization tool to manage and reduce the costs associated with their Kubernetes clusters. + + +## Architecture + +![Kubecost Architecture](./images/secure-ingress-kubecost-new.png) + + +## Approach + +This blueprint will include the following: + +* A new Well-Architected VPC with both Public and Private subnets. +* A new Well-Architected EKS cluster in the region and account you specify. +* [EBS CSI Driver Amazon EKS Add-on](https://aws-quickstart.github.io/cdk-eks-blueprints/addons/ebs-csi-driver/) allows Amazon Elastic Kubernetes Service (Amazon EKS) clusters to manage the lifecycle of Amazon EBS volumes for persistent volumes. +* AWS and Kubernetes resources needed to support [AWS Load Balancer Controller](https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html). +* [Amazon VPC CNI add-on (VpcCni)](https://docs.aws.amazon.com/eks/latest/userguide/managing-vpc-cni.html) into your cluster to support native VPC networking for Amazon EKS. +* [External-DNS](https://github.com/kubernetes-sigs/external-dns) allows integration of exposed Kubernetes services and Ingresses with DNS providers +* [Kubecost](https://kubecost.com/) provides real-time cost visibility and insights by uncovering patterns that create overspending on infrastructure to help teams prioritize where to focus optimization efforts +* [Argo CD](https://aws-quickstart.github.io/cdk-eks-blueprints/addons/argo-cd/) is a declarative, GitOps continuous delivery tool for Kubernetes. The Argo CD add-on provisions Argo CD into an EKS cluster, and bootstraping your workloads from public and private Git repositories. +* Create the necessary Cognito resources like user pool, user pool client, domain, [Pre sign-up Lambda trigger and Pre authentication Lambda triggers](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html) etc.., and passed to the Argo CD app of apps pattern from which ingress resources can reference. + +## GitOps confguration + +For GitOps, the blueprint bootstrap the ArgoCD addon and points to the [EKS Blueprints Workload](https://github.com/aws-samples/eks-blueprints-workloads) sample repository. + + +## Prerequisites + +Ensure that you have installed the following tools on your machine. + +1. [aws cli](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) +2. [kubectl](https://Kubernetes.io/docs/tasks/tools/) +3. [cdk](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install) +4. [npm](https://docs.npmjs.com/cli/v8/commands/npm-install) + +## Deploy + +1. Let’s start by setting a few environment variables. Change the Region as needed. + +``` +ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text) +AWS_REGION=us-west-2 +``` + +2. Clone the repository and install dependency packages. This repository contains CDK v2 code written in TypeScript. + +``` +git clone https://github.com/aws-samples/cdk-eks-blueprints-patterns.git +cd cdk-eks-blueprints-patterns +npm i +``` + +3. argo-admin-password secret must be defined as plain text (not key/value) in `us-west-2` region. + +``` +aws secretsmanager create-secret --name argo-admin-secret \ + --description "Admin Password for ArgoCD" \ + --secret-string "password123$" \ + --region "us-west-2" +``` +4. The CDK code expects the allowed domain and subdomain names in the CDK context file (cdk.json). + +Create two environment variables. The PARENT_HOSTED_ZONE variable contains your company’s domain name. The DEV_SUBZONE_NAME will be the address for your Kubecost dashboard. + +Generate the cdk.json file: + +``` +PARENT_HOSTED_ZONE=mycompany.a2z.com +DEV_SUBZONE_NAME=dev.mycompany.a2z.com +cat << EOF > cdk.json +{ + "app": "npx ts-node dist/lib/common/default-main.js", + "context": { + "parent.hostedzone.name": "${PARENT_HOSTED_ZONE}", + "dev.subzone.name": "${DEV_SUBZONE_NAME}" + } +} +EOF +``` + + +5. In this solution, we’ll allow access to the Kubecost dashboard based on user email addresses. You can control access to the dashboard by allow-listing an entire domain or individual email addresses. + +Users are required to sign-up before they can access the Kubecost dashboard. The pre sign-up Lambda trigger only allows sign-ups when user’s email domain matches allow-listed domains. When users sign-up, Cognito sends a verification code to their email address. Users have to verify access (using the one time valid code) to their email before they get access to the dashboard. + +If you’d like to limit access to the dashboard by email addresses, you can also create a parameter to store allowed email addresses and add a logic to the pre authentication Lambda trigger. + +Create below parameters with allowed email addresses and domains in the AWS Systems Manager Parameter Store: + +``` +export SSM_PARAMETER_KEY="/secure-ingress-auth-cognito/ALLOWED_DOMAINS" +export SSM_PARAMETER_VALUE="emaildomain1.com,emaildomain2.com" + +aws ssm put-parameter \ + --name "$SSM_PARAMETER_KEY" \ + --value "$SSM_PARAMETER_VALUE" \ + --type "String" \ + --region $AWS_REGION +``` + + +6. Execute the commands below to bootstrap the AWS environment in `us-west-2` + +``` +cdk bootstrap aws://$ACCOUNT_ID/$AWS_REGION +``` + +7. Run the following command from the root of this repository to deploy the pipeline stack: + +``` +make build +make pattern secure-ingress-cognito deploy secure-ingress-blueprint +``` + +## Cluster Access + +Once the deploy completes, you will see output in your terminal window similar to the following: + +``` +Outputs: +secure-ingress-blueprint.secureingressblueprintClusterNameD6A1BE5C = secure-ingress-blueprint +secure-ingress-blueprint.secureingressblueprintConfigCommandD0275968 = aws eks update-kubeconfig —name secure-ingress-blueprint —region us-west-2 —role-arn arn:aws:iam:::role/secure-ingress-blueprint-secureingressblueprintMas-7JD5S67SG7M0 +secure-ingress-blueprint.secureingressblueprintGetTokenCommand21BE2184 = aws eks get-token —cluster-name secure-ingress-blueprint —region us-west-2 —role-arn arn:aws:iam:::role/secure-ingress-blueprint-secureingressblueprintMas-7JD5S67SG7M0 +``` +``` +Stack ARN: +arn:aws:cloudformation:us-west-2::stack/secure-ingress-blueprint/64017120-91ce-11ed-93b2-0a67951f5d5d +``` + + +To update your Kubernetes config for your new cluster, copy and run the secure-ingress-blueprint.secureingressblueprintConfigCommandD0275968 command (the second command) in your terminal. + +``` +aws eks update-kubeconfig —name secure-ingress-blueprint —region us-west-2 —role-arn arn:aws:iam:::role/secure-ingress-blueprint-secureingressblueprintMas-7JD5S67SG7M0 +``` + +Validate that you now have kubectl access to your cluster via the following: + +``` +kubectl get all -n kubecost +``` + +You should see output that lists all namespaces in your cluster. + + +## Test authentication + +Point your browser to the URL of the Kubecost app in your cluster. You can get the URL from the cdk.json file using the below command. + +``` +awk -F':' '/dev.subzone.name/ {print $2}' cdk.json | tr -d '",' | xargs echo +``` + +Your browser will be redirected to a sign-in page. This page is provided by Amazon Cognito hosted UI. + +Since this is your first time accessing the application, sign up as a new user. The data you input here will be saved in the Amazon Cognito user pool you created earlier in the post. + +![Cognito Signup Process](./images/Cognito-Signup-1.png) + +Select “Sign up” and use your email address and create a password + +![Cognito Signup Process](./images/Cognito-Signup-2.png) + +![Cognito Signup Process](./images/Cognito-Signup-3.png) + +Use the verification code received in your email and confirm the account. Once you sign in, ALB will send you to the Kubecost app’s UI: + +![Kubecost](./images/Cognito-Kubecost-1.png) + +Select the “AWS Cluster #1” to view the cost overview, savings and efficiency details. + +![Kubecost Dashboard](./images/Cognito-Kubecost-2.png) + diff --git a/docs/patterns/images/amd-1.29-addon.png b/docs/patterns/images/amd-1.29-addon.png new file mode 100644 index 0000000000000000000000000000000000000000..dcb92b5b43371601b6f18ae8cf796c4844ea8c9a GIT binary patch literal 108320 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%0AS>Pe1go#PWU2EVe_)Y2ec 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

3ZG{x?(+Y4g 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 literal 0 HcmV?d00001 diff --git a/docs/patterns/images/aws_secret_codepipeline.png b/docs/patterns/images/aws_secret_codepipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..a8f3694c46195ee8514747a4fddbaee3c66945be GIT binary patch literal 73525 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 literal 0 HcmV?d00001 diff --git a/docs/patterns/images/codepipeline1.png b/docs/patterns/images/codepipeline1.png new file mode 100644 index 0000000000000000000000000000000000000000..ff872bdaf262a17faea35a40fd51f2da6dc08210 GIT binary patch literal 83821 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

&p}|SAc`uKuswt=zd8ZWE+ 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 Rt^*$AnX{)${^|9v{{a2W=K}x$ literal 0 HcmV?d00001 diff --git a/docs/patterns/pipeline-multi-env-gitops.md b/docs/patterns/pipeline-multi-env-gitops.md index 08fec903..dbac3989 100644 --- a/docs/patterns/pipeline-multi-env-gitops.md +++ b/docs/patterns/pipeline-multi-env-gitops.md @@ -1,99 +1,575 @@ -# Pipeline Multi Environment Pattern +# GitOps based Multi Cluster Addon and Apps Managament using Crossplane and ArgoCD ## Objective -1. Deploying an EKS cluster across 3 environments( dev, test, and prod ), with a Continuous Deployment pipeline triggered upon a commit to the repository that holds the pipeline configuration. -2. Configuring GitOps tooling (ArgoCD addon) to support multi-team and multi-repositories configuration, in a way that restricts each application to be deployed only into the team namespace, by using ArgoCD projects +The objective of this pattern is to provide GitOps based lifecycle management of Amazon EKS Addons, Kubernetes Applications and Helm charts across various workload clusters using ArgoCD and Crossplane deployed in a Management Cluster. This helps platform and application teams to simplify the process of deploying Addos and Apps from a central Management Cluster. In this Solution, we use CDK to deploy AWS CodePipeline which monitors this platform repo and deploy the Management and Workload Clusters using CDK EKS Blueprints. -### GitOps confguration -For GitOps, the blueprint bootstrap the ArgoCD addon and points to the [EKS Blueprints Workload](https://github.com/aws-samples/eks-blueprints-workloads) sample repository. -The pattern uses the ECSDEMO applications as sample applications to demonstrate how to setup a GitOps configuration with multiple teams and multiple applications. The pattern include the following configurations in terms io: +## Architecture + + +## Approach + +This blueprint will include the following: + +* AWS CodePipeline which deploy the Management and Workload Clusters +* A new Well-Architected EKS cluster `management-cluster` and two workload EKS Clusters `amd-1-29-blueprint` and `arm-1-29-blueprint` in the region and account you specify. +* [Amazon VPC CNI add-on (VpcCni)](https://docs.aws.amazon.com/eks/latest/userguide/managing-vpc-cni.html) into your cluster to support native VPC networking for Amazon EKS. +* The Management Cluster is deployed with the following Addons. + * Upbound Universal Crossplane Provider + * Upbound AWS Family Crossplane Provider + * Upbound AWS EKS Crossplane Provider + * Kubernetes Crossplane Provider + * Helm Crossplane Provider + * Secrets Store AddOn + * ArgoCD Addon +* The ArgoCD Addon is bootstrapped with [git-ops](https://github.com/aws-samples/eks-blueprints-workloads) which contains Crossplane Manifest files to deploy EKS Addons, Kubernetes Manifests and also Helm Charts. + +## GitOps confguration -1. Application team - it defines 3 application teams that corresponds with the 3 sample applications used -2. ArgoCD bootstrap - the pattern configure the ArgoCD addon to point to the [workload repository](https://github.com/aws-samples/eks-blueprints-workloads) of the EKS Blueprints samples -3. ArgoCD projects - as part of the ArgoCD addon bootstrap, the pattern generate an ArgoCD project for each application team. The ArgoCD are used in order to restrict the deployment of an application to a specific target namespace +For GitOps, the blueprint bootstrap the ArgoCD addon and points to the [EKS Blueprints Workload](https://github.com/aws-samples/eks-blueprints-workloads) sample repository. -You can find the App of Apps configuration for this pattern in the workload repository under the folder [`multi-repo`](https://github.com/aws-samples/eks-blueprints-workloads/tree/main/multi-repo). ## Prerequisites -1. Fork this repository to your GitHub organisation/user -2. Clone your forked repository -3. Install the AWS CDK Toolkit globally on your machine using +Ensure that you have installed the following tools on your machine. + +1. [aws cli](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) +2. [kubectl](https://Kubernetes.io/docs/tasks/tools/) +3. [cdk](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install) +4. [npm](https://docs.npmjs.com/cli/v8/commands/npm-install) +5. [helm](https://helm.sh/docs/intro/install/) +6. GitHub Access Token for this repo and AWS secret + +Create a plain-text Amazon secret to hold a fine-grained GitHub access token for this repo in the desired region, and +set its name as a value to the GITHUB_SECRET environment variable. Default value is `cdk_blueprints_github_secret`. + +> **WARNING:** When switching the CDK between region, remember to replicate this secret!!!! + +```shell +export ACCOUNT_ID=$(aws sts get-caller-identity --output text --query Account) +export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region') +export CDK_REPO_GITHUB_PAT_TOKEN= +export CDK_REPO_AWS_SECRET_NAME="cdk_blueprints_github_secret" +aws secretsmanager create-secret --region $AWS_REGION \ + --name $CDK_REPO_AWS_SECRET_NAME \ + --description "GitHub Personal Access Token for CodePipeline to access GitHub account" \ + --secret-string $CDK_REPO_GITHUB_PAT_TOKEN +``` + +The Secret will look like this in the AWS Console. + +![AWS Secret for CodePipeline](./images/aws_secret_codepipeline.png) + +## Deploy + +1. Clone the repository and install dependency packages. This repository contains CDK v2 code written in TypeScript. + +``` +git clone https://github.com/aws-samples/cdk-eks-blueprints-patterns.git +cd cdk-eks-blueprints-patterns +npm i +``` + +2. Execute the commands below to bootstrap the AWS environment + +``` +cdk bootstrap aws://$ACCOUNT_ID/$AWS_REGION +``` + +4. Run the following command from the root of this repository to deploy the pipeline stack: + +``` +make build +make list +make pattern aws-addon-clusters deploy +``` + +## Cluster Access + +### View the CodePipeline + +![codepipeline1](./images/codepipeline1.png) + +![codepipeline2](./images/codepipeline2.png) + +### Create Kube context to access the `management-cluster` + +Go to the CloudFormation Stack `mgmt-cluster-stage-mgmt-cluster-stage-blueprint` outputs and search for a key starting with `mgmtclusterstageblueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `management-cluster` + +The example command looks like below. + +```shell +aws eks update-kubeconfig --name management-cluster --region us-west-2 --role-arn arn:aws:iam::ACCOUNT_ID:role/mgmt-cluster-stage-mgmt-c-managementclusterAccessRo-XYSC5PKL8WnA +``` + +The output will look like below. + +```shell +Updated context arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/management-cluster in /Users//.kube/config +``` + +Set below environment variable to the above context + +```shell +export MANAGEMENT_CLUSTER_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/management-cluster" +echo "export MANAGEMENT_CLUSTER_CONTEXT=${MANAGEMENT_CLUSTER_CONTEXT}" >> ~/.bash_profile +``` +Run below command to validate the access to the `management-cluster` + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get node +``` + +The output will like below. + +```shell +NAME STATUS ROLES AGE VERSION +ip-10-0-116-4.ec2.internal Ready 6d8h v1.28.8-eks-ae9a62a +ip-10-0-175-104.ec2.internal Ready 6d8h v1.28.8-eks-ae9a62a +``` + - ```bash - npm install -g aws-cdk - ``` +Run below command to get list of Crossplane Providers deployed into the `management-cluster` -4. `github-ssh-key` - must contain GitHub SSH private key as a JSON structure containing fields `sshPrivateKey` and `url`. This will be used by ArgoCD addon to authenticate against ay GitHub repository (private or public). The secret is expected to be defined in the region where the pipeline will be deployed to. For more information on SSH credentials setup see [ArgoCD Secrets Support](https://aws-quickstart.github.io/cdk-eks-blueprints/addons/argo-cd/#secrets-support). +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providers.pkg.crossplane.io +``` + +The output will like below. + +```shell +NAME INSTALLED HEALTHY PACKAGE AGE +helm-provider True True xpkg.upbound.io/crossplane-contrib/provider-helm:v0.18.1 47h +kubernetes-provider True True xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0 25h +provider-aws-eks True True xpkg.upbound.io/upbound/provider-aws-eks:v1.1.0 8d +upbound-provider-family-aws True True xpkg.upbound.io/upbound/provider-family-aws:v1.4.0 8d +``` + + +Run below command to get the Crossplane Providers pods to the `management-cluster` + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get pod -n upbound-system +``` + +The output will like below. + +```shell +NAME READY STATUS RESTARTS AGE +crossplane-594b65bfdb-pgkxf 1/1 Running 0 6d8h +crossplane-rbac-manager-86c74cf5d-tjcw8 1/1 Running 0 6d8h +helm-provider-4d90a08b9ede-7c874b858b-pp26d 1/1 Running 0 47h +kubernetes-provider-a3cbbe355fa7-55846cfbfb-6tpcl 1/1 Running 0 25h +provider-aws-eks-23042d28ed58-66d9db8476-jr6mb 1/1 Running 0 6d8h +upbound-provider-family-aws-bac5d48bd353-64845bdcbc-4vpn6 1/1 Running 0 6d8h 8d +``` + + +Run below command to get the ArgoCD pods deployed into the `management-cluster` + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get pod -n argocd +``` + +The output will like below. + +```shell +NAME READY STATUS RESTARTS AGE +blueprints-addon-argocd-application-controller-0 1/1 Running 0 24h +blueprints-addon-argocd-applicationset-controller-7b78c7fc94ls9 1/1 Running 0 24h +blueprints-addon-argocd-dex-server-6cf94ddc54-dfhv7 1/1 Running 0 24h +blueprints-addon-argocd-notifications-controller-6f6b7d95cdd2tl 1/1 Running 0 24h +blueprints-addon-argocd-redis-b8dbc7dc6-h4bs8 1/1 Running 0 24h +blueprints-addon-argocd-repo-server-fd57dc686-zkbsm 1/1 Running 0 4h15m +blueprints-addon-argocd-server-84c8b597c9-98c95 1/1 Running 0 24h +``` + + +### Create Kube context to access the `amd-1-29-blueprint` + +Go to the CloudFormation Stack `amd-1-29-amd-1-29-blueprint` outputs and search for a key starting with `amd129blueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `amd-1-29-blueprint` + +The example command looks like below. + +```shell +aws eks update-kubeconfig --name amd-1-29-blueprint --region us-west-2 --role-arn arn:aws:iam::ACCOUNT_ID:role/eks-connector-role +``` -5. `github-token` secret must be stored in AWS Secrets Manager for the GitHub pipeline. For more information on how to set it up, please refer to the [docs](https://docs.aws.amazon.com/codepipeline/latest/userguide/GitHub-create-personal-token-CLI.html). The GitHub Personal Access Token should have these scopes: - 1. *repo* - to read the repository - 2. *admin:repo_hook* - if you plan to use webhooks (enabled by default) +The output will look like below. -6. Create the relevant users that will be used by the different teams +```shell +Added new context arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/amd-1-29-blueprint to /Users/jalawala/.kube/config +``` + +Set below environment variable to the above context + +```shell +export WORKLOAD_CLUSTER1_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/amd-1-29-blueprint" +echo "export WORKLOAD_CLUSTER1_CONTEXT=${WORKLOAD_CLUSTER1_CONTEXT}" >> ~/.bash_profile +``` +Run below commands to validate the access to the `amd-1-29-blueprint` + +```shell +kubectl --context $WORKLOAD_CLUSTER1_CONTEXT get node +``` +The output will look like below. + +```shell +NAME STATUS ROLES AGE VERSION +ip-10-0-96-158.ec2.internal Ready 6d9h v1.29.3-eks-ae9a62a +``` + +### Create Kube context to access the `arm-1-29-blueprint` + +Go to the CloudFormation Stack `arm-1-29-arm-1-29-blueprint` outputs and search for a key starting with `arm129blueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `arm-1-29-blueprint` + +The example command looks like below. + +```shell +aws eks update-kubeconfig --name arm-1-29-blueprint --region us-west-2 --role-arn arn:aws:iam::$ACCOUNT_ID:role/eks-connector-role +``` + +The output will look like below. - ```bash - aws iam create-user --user-name frontend-user - aws iam create-user --user-name nodejs-user - aws iam create-user --user-name crystal-user - aws iam create-user --user-name platform-user - ``` +```shell +Added new context arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/arm-1-29-blueprint to /Users/jalawala/.kube/config +``` -7. Install project dependencies by running `npm install` in the main folder of this cloned repository +Set below environment variable to the above context -8. In case you haven't done this before, bootstrap your AWS Account for AWS CDK use using: +```shell +export WORKLOAD_CLUSTER2_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/arm-1-29-blueprint" +echo "export WORKLOAD_CLUSTER2_CONTEXT=${WORKLOAD_CLUSTER2_CONTEXT}" >> ~/.bash_profile +``` +Run below commands to validate the access to the `arm-1-29-blueprint` - ```bash - cdk bootstrap - ``` +```shell +kubectl --context $WORKLOAD_CLUSTER2_CONTEXT get node +``` +The output will look like below. -9. Modify the code in your forked repo to point to your GitHub username/organisation. This is needed because the AWS CodePipeline that will be automatically created will be triggered upon commits that are made in your forked repo. Open the [pattenrn file source code](../../lib/pipeline-multi-env-gitops/index.ts) and look for the declared const of `gitOwner`. Change it to your GitHub username. +```shell +NAME STATUS ROLES AGE VERSION +ip-10-0-96-158.ec2.internal Ready 6d9h v1.29.3-eks-ae9a62a +``` -10. *OPTIONAL* - As mentioned above, this pattern uses another repository for GitOps. This is the ArgoCD App of Apps configuration that resides in the [aws-samples](https://github.com/aws-samples/eks-blueprints-workloads/tree/main/multi-repo) organisation. If you would like to modify the App of Apps configuration and customise it to your needs, then use the following instructions: +### Update the Trust policy for the Upbound AWS EKS Provider IAM Role. - 1. Fork the [App of Apps](https://github.com/aws-samples/eks-blueprints-workloads/tree/main/multi-repo) workloads repo to your GitHub username +The IAM Role used for IRSA for the Upbound AWS EKS Provider Pod needs to be updated as below to allow Service Accounts for all Upbound AWS Service specific providers to assume the Role. - 2. Modify the [pattern code](../../lib/pipeline-multi-env-gitops/index.ts) with the following changes: +Go to the `mgmt-cluster-stage-mgmt-cluster-stage-blueprint` stack output tab and extract the role name from the `providerawssaiamrole` output. - 1. Change the consts of `devArgoAddonConfig`, `testArgoAddonConfig`, and `prodArgoAddonConfig` to point to your GitHub username +```shell +export providerawssaiamrole=$(aws cloudformation describe-stacks \ + --stack-name mgmt-cluster-stage-mgmt-cluster-stage-blueprint \ + --query 'Stacks[].Outputs[?OutputKey==`providerawssaiamrole`].OutputValue' \ + --output text | awk -F'/' '{print $2}') +echo $providerawssaiamrole +``` - 2. In the `createArgoAddonConfig` function, look for the `git@github.com:aws-samples/eks-blueprints-workloads.git` code under the `sourceRepos` configurations, and add another reference to your forked workload repository +The output will look like below. -## Deploying +```shell +mgmt-cluster-stage-mgmt-c-mgmtclusterstageblueprint-I8cnZsnO37rA +``` -Once all pre-requisites are set you are ready to deploy the pipeline. Run the following command from the root of this repository to deploy the pipeline stack: +Get the OIDC for the `management-cluster` value by running: -```bash -make pattern pipeline-multienv-gitops deploy eks-blueprint-pipeline-stack +```shell +export OIDC_VAL=$(aws eks describe-cluster --name "management-cluster" --region "${AWS_REGION}" --query "cluster.identity.oidc.issuer" --output text | awk -F'/' '{print $5}') +echo $OIDC_VAL ``` -Now you can go to [AWS CodePipeline console](https://eu-west-1.console.aws.amazon.com/codesuite/codepipeline/pipelines), and see how it was automatically created to deploy multiple Amazon EKS clusters to different environments. +The output will like below. -### Notes +```shell +0F745A41ECA76297CBF070C032932033 +``` -1. In case your pipeline fails on the first run, it's because that the AWS CodeBuild step needs elevated permissions at build time. This is described in the official [docs](https://aws-quickstart.github.io/cdk-eks-blueprints/pipelines/#troubleshooting). To resolve this, locate `AccessDeniedException` in the CodeBuild build logs, and attach the following inline policy to it: +Create the Updated Trust policy. Notice the `*` in `provider-aws-*` in the Conditions Section. - ```json +```shell +export IAM_ROLE_TRUST_POLICY="provider-aws-management-cluster-trust-policy.json" +cat > $IAM_ROLE_TRUST_POLICY < $EKS_ACCESS_IAM_POLICY_FILE < +export GIT_OPS_AWS_SECRET_NAME="github-token" +aws secretsmanager create-secret --region $AWS_REGION \ + --name $GIT_OPS_AWS_SECRET_NAME \ + --description "GitHub Personal Access Token for ArgoCD to access Grossplane Manifests" \ + --secret-string $GIT_OPS_GITHUB_PAT_TOKEN + + +cat > secret-store-argocd.yaml < +``` + +Add EKS Cluster to ArgoCD. + +```shell +argocd cluster add $MANAGEMENT_CLUSTER_CONTEXT +``` +The output will look like below. + +```shell +WARNING: This will create a service account `argocd-manager` on the cluster referenced by context `arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/management-cluster` with full cluster level privileges. Do you want to continue [y/N]? y +INFO[0004] ServiceAccount "argocd-manager" already exists in namespace "kube-system" +INFO[0004] ClusterRole "argocd-manager-role" updated +INFO[0005] ClusterRoleBinding "argocd-manager-role-binding" updated +Cluster 'https://0F745A41ECA76297CBF070C032932033.sk1.us-west-2.eks.amazonaws.com' added +``` + +Run the below command to get the list of ArgoCD Applications. + +```shell +argocd app list +``` + +The output will look like below. + +```shell +NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET +argocd/bootstrap-apps https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./common/testingClusters main +argocd/cluster1 https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./clusters/cluster1 main +argocd/cluster2 https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./clusters/cluster2 main +``` + + +### Validate EKS Addons deployment in Workload Clusters + +Run the below command to get the list of Crossplane AWS Provder Objects deployed in the Management Cluster. + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.aws.upbound.io +``` + +The output will look like below. + +```shell +NAME AGE +provider-config-aws-amd-1-29-blueprint 4h52m +provider-config-aws-arm-1-29-blueprint 4h52m +``` + +Run the below command to get the list of Crossplane AWS EKS Provder Addon Objects deployed in the Management Cluster. + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get addons.eks.aws.upbound.io +``` + +The output will look like below. + +```shell +NAME READY SYNCED EXTERNAL-NAME AGE +addon-eks-pod-identity-agent-amd-1-29 True True amd-1-29-blueprint:eks-pod-identity-agent 4h15m +addon-eks-pod-identity-agent-arm-1-29 True True arm-1-29-blueprint:eks-pod-identity-agent 4h15m +``` + +Go to the Workload EKS Clusters and Ensure that EKS Addon is deployed successfully. + +![amd-1-29-blueprint EKS Addon](./images/amd-1.29-addon.png) + + +![arm-1-29-blueprint EKS Addon](./images/arm-1.29-addon.png) + + +### Validate Kubernetes Manifests deployment in Workload Clusters + +Run the below command to get the list of Crossplane Kubernetes Provder Objects deployed in the Management Cluster. + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.kubernetes.crossplane.io +``` + +The output will look like below. + +```shell +NAME AGE +provider-config-k8s-amd-1-29-blueprint 4h31m +provider-config-k8s-arm-1-29-blueprint 4h40m +``` + +Run the below command to get the list of Namespaces in the Workload Cluster `amd-1-29-blueprint` + +```shell +kubectl --context $WORKLOAD_CLUSTER1_CONTEXT get ns +``` + +The output will look like below. + +```shell +NAME STATUS AGE +default Active 8d +external-secrets Active 8d +kube-node-lease Active 8d +kube-public Active 8d +kube-system Active 8d +test-namespace-amd-1-29-blueprint Active 4h9m +``` + + +Run the below command to get the list of Namespaces in the Workload Cluster `arm-1-29-blueprint` + +```shell +kubectl --context $WORKLOAD_CLUSTER2_CONTEXT get ns +``` + +The output will look like below. + +```shell +NAME STATUS AGE +default Active 8d +external-secrets Active 8d +kube-node-lease Active 8d +kube-public Active 8d +kube-system Active 8d +test-namespace-arm-1-29-blueprint Active 4h9m +``` + +### Validate Helm Chart deployment in Workload Clusters + +Run the below command to get the list of Crossplane Kubernetes Provder Objects deployed in the Management Cluster. + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.helm.crossplane.io +``` + +The output will look like below. + +```shell +NAME AGE +provider-config-helm-amd-1-29-blueprint 4h37m +provider-config-helm-arm-1-29-blueprint 4h46m +``` + +Run the below command to get the list of helm charts in the Workload Cluster `amd-1-29-blueprint` + +```shell +helm --kube-context $WORKLOAD_CLUSTER1_CONTEXT list -A +``` + +The output will look like below. + +```shell +NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION +blueprints-addon-external-secrets external-secrets 1 2024-05-07 05:25:31.465715836 +0000 UTC deployed external-secrets-0.9.9 v0.9.9 +test-helm-amd-1-29-blueprint default 1 2024-05-15 06:39:17.325950143 +0000 UTC deployed nginx-17.0.1 1.26.0 +``` + + +Run the below command to get the list of Helm Charts in the Workload Cluster `arm-1-29-blueprint` + +```shell +helm --kube-context $WORKLOAD_CLUSTER2_CONTEXT list -A +``` + +The output will look like below. + +```shell +NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION +blueprints-addon-external-secrets external-secrets 1 2024-05-07 05:26:52.028907405 +0000 UTC deployed external-secrets-0.9.9 v0.9.9 +test-helm-arm-1-29-blueprint default 1 2024-05-15 06:39:17.222351682 +0000 UTC deployed nginx-17.0.1 1.26.0 +``` -The above inconvenience has been fixed in the Blueprints framework as well as in the pattern, so please report such cases if you encounter them. This item is left here for reference in case customers modify the pattern to require additional permissions at build time. -2. This pattern consumes multiple Elastic IP addresses, because 3 VPCs with 3 subnets are created by this pattern. Make sure your account limit for EIP are increased to support additional 9 EIPs (1 per Subnets) diff --git a/lib/crossplane-argocd-gitops/aws-addon-clusters-stack.ts b/lib/crossplane-argocd-gitops/aws-addon-clusters-stack.ts new file mode 100644 index 00000000..61ea2379 --- /dev/null +++ b/lib/crossplane-argocd-gitops/aws-addon-clusters-stack.ts @@ -0,0 +1,16 @@ +import * as cdk from 'aws-cdk-lib'; +import { Construct } from 'constructs'; +// import * as sqs from 'aws-cdk-lib/aws-sqs'; + +export class AwsAddonClustersStack extends cdk.Stack { + constructor(scope: Construct, id: string, props?: cdk.StackProps) { + super(scope, id, props); + + // The code that defines your stack goes here + + // example resource + // const queue = new sqs.Queue(this, 'AwsAddonClustersQueue', { + // visibilityTimeout: cdk.Duration.seconds(300) + // }); + } +} diff --git a/lib/crossplane-argocd-gitops/common/construct-utils.ts b/lib/crossplane-argocd-gitops/common/construct-utils.ts new file mode 100644 index 00000000..9aa760aa --- /dev/null +++ b/lib/crossplane-argocd-gitops/common/construct-utils.ts @@ -0,0 +1,48 @@ +import { utils } from "@aws-quickstart/eks-blueprints"; +import { HelmAddOn } from '@aws-quickstart/eks-blueprints'; +import * as cdk from 'aws-cdk-lib'; + +export const logger = utils.logger; + +export function errorHandler(app: cdk.App, message: string, error?: Error) { + logger.info(message); + if(error){ + logger.error(error.name, error.message, error.stack); + } + new EmptyStack(app); +} + +export function configureApp(logLevel? : number): cdk.App { + logger.settings.minLevel = logLevel ?? 2; // debug., 3 info + logger.settings.hideLogPositionForProduction = true; + utils.userLog.info("=== Run make compile before each run, if any code modification was made. === \n\n"); + + const account = process.env.CDK_DEFAULT_ACCOUNT!; + const region = process.env.CDK_DEFAULT_REGION!; + + HelmAddOn.validateHelmVersions = true; + + return new cdk.App({context: { account, region }}); +} + +export async function prevalidateSecrets(pattern: string, region?: string, ...secrets: string[]) { + for(const secret of secrets) { + try { + await utils.validateSecret(secret, region ?? process.env.CDK_DEFAULT_REGION!); + } + catch(error) { + throw new Error(`${secret} secret must be setup for the ${pattern} pattern to work`); + } + } +} + +export class EmptyStack extends cdk.Stack { + constructor(scope: cdk.App, ...message: string[]) { + super(scope, "empty-error-stack"); + if(message) { + message.forEach(m => logger.info(m)); + } + } +} + + diff --git a/lib/crossplane-argocd-gitops/custom-addons/cluster-secret-store-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/cluster-secret-store-addon.ts new file mode 100644 index 00000000..18d2ee1d --- /dev/null +++ b/lib/crossplane-argocd-gitops/custom-addons/cluster-secret-store-addon.ts @@ -0,0 +1,41 @@ +import { ClusterAddOn, ClusterInfo, ExternalsSecretsAddOn } from "@aws-quickstart/eks-blueprints"; +import { dependable } from "@aws-quickstart/eks-blueprints/dist/utils"; +import { Stack } from "aws-cdk-lib"; +import { KubernetesManifest } from "aws-cdk-lib/aws-eks"; +import { Construct } from "constructs"; + +export class ClusterSecretStoreAddOn implements ClusterAddOn { + + constructor(readonly clusterStoreName: string) {} + + @dependable(ExternalsSecretsAddOn.name) + deploy(clusterInfo: ClusterInfo): void | Promise { + const clusterSecretStore = new KubernetesManifest(clusterInfo.cluster, "ClusterSecretStore", { + cluster: clusterInfo.cluster, + manifest: [ + { + apiVersion: "external-secrets.io/v1beta1", + kind: "ClusterSecretStore", + metadata: { name: this.clusterStoreName }, + spec: { + provider: { + aws: { + service: "SecretsManager", + region: Stack.of(clusterInfo.cluster).region, + auth: { + jwt: { + serviceAccountRef: { + name: "external-secrets-sa", + namespace: "external-secrets", + }, + }, + }, + }, + }, + }, + }, + ], + }); + return Promise.resolve(clusterSecretStore); + } +} \ No newline at end of file diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-aws-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-aws-provider-addon.ts new file mode 100644 index 00000000..530fdcff --- /dev/null +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-aws-provider-addon.ts @@ -0,0 +1,81 @@ +import 'source-map-support/register'; +import * as blueprints from '@aws-quickstart/eks-blueprints'; +import * as eks from "aws-cdk-lib/aws-eks"; +import { Construct } from 'constructs'; +import { dependable } from '@aws-quickstart/eks-blueprints/dist/utils'; +import { UpboundCrossplaneAddOn } from './upbound-crossplane-addon'; + +export class CrossplaneAwsProviderAddon implements blueprints.ClusterAddOn { + id?: string | undefined; + @dependable(UpboundCrossplaneAddOn.name) + deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { + const cluster = clusterInfo.cluster; + const crossplaneIRSARole = clusterInfo.getAddOnContexts().get("UpboundCrossplaneAddOn")!["arn"]; + const controllerConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "ControllerConfig", { + cluster: cluster, + manifest: [ + { + apiVersion: "pkg.crossplane.io/v1alpha1", + kind: "ControllerConfig", + metadata: { + name: "aws-config", + annotations: { + "eks.amazonaws.com/role-arn": crossplaneIRSARole + } + }, + spec: {}, + }, + ], + }); + + const awsEksProvider = new eks.KubernetesManifest(clusterInfo.cluster.stack, "EKSProvider", { + cluster: cluster, + manifest: [ + { + apiVersion: "pkg.crossplane.io/v1", + kind: "Provider", + metadata: { + name: "provider-aws-eks", + }, + spec: { + package: "xpkg.upbound.io/upbound/provider-aws-eks:v1.1.0", + controllerConfigRef: { + name: "aws-config" + } + }, + }, + ], + }); + + awsEksProvider.node.addDependency(controllerConfig); + + // const cfnWaitConditionHandle = new cloudformation.CfnWaitConditionHandle(clusterInfo.cluster.stack, 'MyCfnWaitConditionHandle'); + + // new cloudformation.CfnWaitCondition(clusterInfo.cluster.stack, "EKSProviderWaitCondition", { + // count: 1, + // handle: cfnWaitConditionHandle.ref, + // timeout: "120", + // }).node.addDependency(awsEksProvider); + + // const eksProviderConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "EKSProviderConfig", { + // cluster: cluster, + // manifest: [ + // { + // apiVersion: "aws.upbound.io/v1beta1", + // kind: "ProviderConfig", + // metadata: { + // name: "default", + // }, + // spec: { + // credentials: { + // source: "IRSA" + // } + // }, + // }, + // ], + // }); + + // eksProviderConfig.node.addDependency(awsEksProvider); + return Promise.resolve(controllerConfig); + } +} diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts new file mode 100644 index 00000000..d13fff0c --- /dev/null +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts @@ -0,0 +1,80 @@ +import 'source-map-support/register'; +import * as blueprints from '@aws-quickstart/eks-blueprints'; +import * as eks from "aws-cdk-lib/aws-eks"; +import { Construct } from 'constructs'; +import { dependable } from '@aws-quickstart/eks-blueprints/dist/utils'; +import { UpboundCrossplaneAddOn } from './upbound-crossplane-addon'; + +export class CrossplaneHelmProviderAddon implements blueprints.ClusterAddOn { + id?: string | undefined; + @dependable(UpboundCrossplaneAddOn.name) + deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { + const cluster = clusterInfo.cluster; + const crossplaneIRSARole = clusterInfo.getAddOnContexts().get("UpboundCrossplaneAddOn")!["arn"]; + + const role_binding = { + apiVersion: "rbac.authorization.k8s.io/v1", + kind: "ClusterRoleBinding", + metadata: { + name: "helm-provider" + }, + subjects: [ + { + kind: "ServiceAccount", + name: "helm-provider", + namespace: "upbound-system" + } + ], + roleRef: { + kind: "ClusterRole", + name: "cluster-admin", + apiGroup: "rbac.authorization.k8s.io" + } + }; + + const runtime_config = { + apiVersion: "pkg.crossplane.io/v1beta1", + kind: "DeploymentRuntimeConfig", + metadata: { + name: "helm-runtime-config" + }, + spec: { + deploymentTemplate: { + spec: { + replicas: 1, + selector: {}, + template: {} + } + }, + serviceAccountTemplate: { + metadata: { name: "helm-provider" } + } + } + }; + + const provider = { + apiVersion: "pkg.crossplane.io/v1", + kind: "Provider", + metadata: { name: "helm-provider" }, + spec: { + package: "xpkg.upbound.io/crossplane-contrib/provider-helm:v0.18.1", + runtimeConfigRef: { + name: "helm-runtime-config" + } + } + }; + + const runtimeHelmConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "runtimeHelmConfig", { + cluster: cluster, + manifest: [role_binding, runtime_config] + }); + + const awsHelmProvider = new eks.KubernetesManifest(clusterInfo.cluster.stack, "providerHelmResource", { + cluster: cluster, + manifest: [provider] + }); + + awsHelmProvider.node.addDependency(runtimeHelmConfig); + return Promise.resolve(runtimeHelmConfig); + } +} diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts new file mode 100644 index 00000000..0bc6b6d5 --- /dev/null +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts @@ -0,0 +1,79 @@ +import 'source-map-support/register'; +import * as blueprints from '@aws-quickstart/eks-blueprints'; +import * as eks from "aws-cdk-lib/aws-eks"; +import { Construct } from 'constructs'; +import { dependable } from '@aws-quickstart/eks-blueprints/dist/utils'; +import { UpboundCrossplaneAddOn } from './upbound-crossplane-addon'; + +export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { + id?: string | undefined; + @dependable(UpboundCrossplaneAddOn.name) + deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { + const cluster = clusterInfo.cluster; + const crossplaneIRSARole = clusterInfo.getAddOnContexts().get("UpboundCrossplaneAddOn")!["arn"]; + + const role_binding1 = { + apiVersion: "rbac.authorization.k8s.io/v1", + kind: "ClusterRoleBinding", + metadata: { name: "kubernetes-provider" }, + subjects: [ + { + kind: "ServiceAccount", + name: "kubernetes-provider", + namespace: "upbound-system" + } + ], + roleRef: { + kind: "ClusterRole", + name: "cluster-admin", + apiGroup: "rbac.authorization.k8s.io" + } + }; + + const runtime_config1 = { + apiVersion: "pkg.crossplane.io/v1beta1", + kind: "DeploymentRuntimeConfig", + metadata: { + name: "kubernetes-runtime-config" + }, + spec: { + deploymentTemplate: { + spec: { + replicas: 1, + selector: {}, + template: {} + } + }, + serviceAccountTemplate: { + metadata: { name: "kubernetes-provider" } + } + } + }; + + const providerK8sResource1 = { + apiVersion: "pkg.crossplane.io/v1", + kind: "Provider", + metadata: { name: "kubernetes-provider" }, + spec: { + package: "xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0", + runtimeConfigRef: { + name: "kubernetes-runtime-config" + } + } + }; + + const runtimeK8sConfig1 = new eks.KubernetesManifest(clusterInfo.cluster.stack, "runtimeK8sConfig1", { + cluster: cluster, + manifest: [role_binding1, runtime_config1] + }); + + const awsK8sProvider1 = new eks.KubernetesManifest(clusterInfo.cluster.stack, "awsK8sProvider1", { + cluster: cluster, + manifest: [providerK8sResource1] + }); + + awsK8sProvider1.node.addDependency(runtimeK8sConfig1); + + return Promise.resolve(runtimeK8sConfig1); + } +} diff --git a/lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams.ts b/lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams.ts new file mode 100644 index 00000000..f5d9991d --- /dev/null +++ b/lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams.ts @@ -0,0 +1,13 @@ + +import {PlatformTeam} from "@aws-quickstart/eks-blueprints"; + +export class ProviderMgmtRoleTeam extends PlatformTeam { + constructor(accountID :string) { + // compute the ARN explicitly since we know its name + const computedProviderRoleArn = `arn:aws:iam::${accountID}:role/provider-aws-management-cluster`; + super( { + name: computedProviderRoleArn, + userRoleArn: computedProviderRoleArn + }); + } +} diff --git a/lib/crossplane-argocd-gitops/custom-addons/sleek-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/sleek-addon.ts new file mode 100644 index 00000000..357652a9 --- /dev/null +++ b/lib/crossplane-argocd-gitops/custom-addons/sleek-addon.ts @@ -0,0 +1,99 @@ +import { ClusterInfo } from "@aws-quickstart/eks-blueprints"; +import { CoreAddOn, CoreAddOnProps } from "@aws-quickstart/eks-blueprints/dist/addons/core-addon"; +import { KubernetesManifest } from "aws-cdk-lib/aws-eks"; +import { Construct } from "constructs"; +import { ClusterSecretStoreAddOn } from "./cluster-secret-store-addon"; +import { createNamespace } from "@aws-quickstart/eks-blueprints/dist/utils"; + +export type SecretMapping = { + [k: string]: string[]; +} + +export interface SleekAddOnProps extends Omit { + secretMappings?: SecretMapping[]; // secret name / secret key + saName?: string; +} + +export class SleekAddOn extends CoreAddOn { + + constructor(readonly props: SleekAddOnProps) { + super({ + addOnName: props.addOnName, + version: props.version, + namespace: props.namespace, + saName: props.saName ?? "" // currently required field in the core addon, hence set to something + }); + } + + deploy(clusterInfo: ClusterInfo): Promise { + let secretStruct : Construct | undefined = undefined; + const ns = createNamespace(this.props.namespace!, clusterInfo.cluster); + const clusterStore: Promise = clusterInfo.getScheduledAddOn(ClusterSecretStoreAddOn.name)!; + this.props.secretMappings?.forEach( e => { + const secret = this.createSecret(e, clusterInfo); + if (clusterStore) { + clusterStore.then(e => secret.node.addDependency(e)); + } + if(secretStruct != null) { + secret.node.addDependency(secretStruct); + secret.node.addDependency(ns); + } + secretStruct = secret; + + }); + const result = super.deploy(clusterInfo); + if(secretStruct) { + result.then(e => e.node.addDependency(secretStruct!)); + } + return result; + } + + private createSecret(secretMapping: SecretMapping, clusterInfo: ClusterInfo) { + const secretName: string = Object.keys(secretMapping)[0]; + const keys: string[] = Object.values(secretMapping)[0]; + const awsSecretName = `${this.props.addOnName}-${secretName}`; + const data: KeyData[] = []; + keys.forEach(key => data.push({ + secretKey: key, + remoteRef: { + key: awsSecretName, + property: key + } + })); + const secret = new KubernetesManifest(clusterInfo.cluster, "secret-" + awsSecretName, { + cluster: clusterInfo.cluster, + manifest: [ + { + apiVersion: "external-secrets.io/v1beta1", + kind: "ExternalSecret", + metadata: { + name: secretName, + namespace: this.props.namespace + }, + spec: { + secretStoreRef: { + name: "eksa-secret-store", + kind: "ClusterSecretStore", + }, + target: { + name: secretName, + creationPolicy: "Merge", + }, + data + }, + }, + ], + }); + return secret; + } +} + +interface KeyData { + secretKey: string; + remoteRef: RemoteRefData; +} + +interface RemoteRefData { + key: string; + property: string; +} \ No newline at end of file diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts new file mode 100644 index 00000000..9d44e2f9 --- /dev/null +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts @@ -0,0 +1,89 @@ +import 'source-map-support/register'; +import * as blueprints from '@aws-quickstart/eks-blueprints'; +import { Construct } from 'constructs'; +import { Values } from "@aws-quickstart/eks-blueprints/dist/spi"; +import merge from "ts-deepmerge"; +import { createNamespace } from '@aws-quickstart/eks-blueprints/dist/utils'; +import {ManagedPolicy, Policy, PolicyDocument} from 'aws-cdk-lib/aws-iam'; +import * as cdk from 'aws-cdk-lib'; + +/** + * User provided options for the Helm Chart + */ +export interface UpboundCrossplaneAddOnProps extends blueprints.HelmAddOnUserProps { + /** + * To Create Namespace using CDK + */ + createNamespace?: boolean; + } + +const defaultProps: blueprints.HelmAddOnProps = { + name: 'uxp', + release: 'blueprints-addon-uxp', + namespace: 'upbound-system', + chart: 'universal-crossplane', + version: '1.14.5-up.1', + repository: 'https://charts.upbound.io/stable', + values: {}, +}; + +export class UpboundCrossplaneAddOn extends blueprints.HelmAddOn { + + readonly options: UpboundCrossplaneAddOnProps; + + constructor( props?: UpboundCrossplaneAddOnProps) { + super({...defaultProps, ...props}); + + this.options = this.props as UpboundCrossplaneAddOnProps; + } + + deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { + const cluster = clusterInfo.cluster; + + // Create the `upbound-system` namespace. + const ns = createNamespace(this.options.namespace!, cluster, true); + + // Create the CrossPlane AWS Provider IRSA. + const serviceAccountName = "provider-aws"; + const sa = cluster.addServiceAccount(serviceAccountName, { + name: serviceAccountName, + namespace: this.options.namespace!, + + }); + sa.node.addDependency(ns); + sa.role.attachInlinePolicy(new Policy(cluster.stack, 'eks-connect-policy', { + document: PolicyDocument.fromJson({ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": ["sts:AssumeRole"], + "Resource": `arn:aws:iam::${cluster.stack.account}:role/eks-connector-role` + }, + { + "Effect": "Allow", + "Action": ["eks:*"], + "Resource": `*` + } + ] + })})); + + clusterInfo.addAddOnContext(UpboundCrossplaneAddOn.name, { + arn: sa.role.roleArn + }); + + new cdk.CfnOutput(cluster.stack, 'providerawssaiamrole', + { + value: sa.role.roleArn, + description: 'provider AWS IAM role', + exportName : 'providerawssaiamrole' + }); + + let values: Values = this.options.values ?? {}; + values = merge(values, values); + + const chart = this.addHelmChart(clusterInfo, values, false, true); + chart.node.addDependency(sa); + return Promise.resolve(chart); + } +} diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts new file mode 100644 index 00000000..90de7670 --- /dev/null +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -0,0 +1,54 @@ +import { Construct } from 'constructs'; +import { utils } from '@aws-quickstart/eks-blueprints'; +import * as blueprints from '@aws-quickstart/eks-blueprints'; +import * as eks from 'aws-cdk-lib/aws-eks'; +import { ObservabilityBuilder } from '@aws-quickstart/eks-blueprints'; +import { UpboundCrossplaneAddOn } from './custom-addons/upbound-crossplane-addon'; +import { CrossplaneAwsProviderAddon } from './custom-addons/crossplane-aws-provider-addon'; +import { CrossplaneK8sProviderAddon } from './custom-addons/crossplane-k8s-provider-addon'; +import { CrossplaneHelmProviderAddon } from './custom-addons/crossplane-helm-provider-addon'; + + +export default class ManagementClusterBuilder { + readonly account: string; + readonly region: string; + + constructor(account: string,region: string) { + this.account = account; + this.region = region; + } + + create(scope: Construct, id: string, mngProps: blueprints.MngClusterProviderProps) { + blueprints.HelmAddOn.validateHelmVersions = false; + + const addOns: Array = [ + new blueprints.addons.ExternalsSecretsAddOn, + new UpboundCrossplaneAddOn, + new CrossplaneAwsProviderAddon, + new CrossplaneK8sProviderAddon, + new CrossplaneHelmProviderAddon, + new blueprints.SecretsStoreAddOn, + new blueprints.ArgoCDAddOn({ + bootstrapRepo: { + repoUrl: "https://github.com/aws-samples/eks-blueprints-workloads", + path: `./crossplane-arocd-gitops/bootstrap`, + targetRevision: 'main', + credentialsSecretName: 'github-token', + credentialsType: 'TOKEN' + } + }), + ]; + + const clusterProvider = new blueprints.MngClusterProvider({...mngProps, + tags: {"scope": "addon"}, + clusterName:id + }); + + return ObservabilityBuilder.builder() + .clusterProvider(clusterProvider) + .version(eks.KubernetesVersion.V1_28) + .enableNativePatternAddOns() + .enableControlPlaneLogging() + .addOns(...addOns); + } +} From 81ac009390cdcec9f20a8daf3c449d4e6c765edd Mon Sep 17 00:00:00 2001 From: jalawala Date: Mon, 3 Jun 2024 17:04:48 +0530 Subject: [PATCH 02/43] fixing review comments for cleanup --- ...lusters.ts => crossplane-argocd-gitops.ts} | 10 +- bin/get-ready-for-test-issues.ts | 54 -- docs/patterns/crosplane-argocd-gitops.md | 553 +++++++++++++++--- .../aws-addon-clusters-stack.ts | 16 - .../cluster-secret-store-addon.ts | 41 -- .../crossplane-aws-provider-addon.ts | 81 --- .../crossplane-helm-provider-addon.ts | 19 +- .../crossplane-k8s-provider-addon.ts | 21 +- .../custom-addons/sleek-addon.ts | 99 ---- .../custom-addons/upbound-crossplane-addon.ts | 14 +- .../management-cluster-builder.ts | 3 - .../multi-cluster-options.ts | 0 .../multi-cluster-pipeline.ts | 16 +- 13 files changed, 512 insertions(+), 415 deletions(-) rename bin/{aws-addon-clusters.ts => crossplane-argocd-gitops.ts} (78%) delete mode 100644 bin/get-ready-for-test-issues.ts delete mode 100644 lib/crossplane-argocd-gitops/aws-addon-clusters-stack.ts delete mode 100644 lib/crossplane-argocd-gitops/custom-addons/cluster-secret-store-addon.ts delete mode 100644 lib/crossplane-argocd-gitops/custom-addons/crossplane-aws-provider-addon.ts delete mode 100644 lib/crossplane-argocd-gitops/custom-addons/sleek-addon.ts rename {bin => lib/crossplane-argocd-gitops}/multi-cluster-options.ts (100%) rename {bin => lib/crossplane-argocd-gitops}/multi-cluster-pipeline.ts (93%) diff --git a/bin/aws-addon-clusters.ts b/bin/crossplane-argocd-gitops.ts similarity index 78% rename from bin/aws-addon-clusters.ts rename to bin/crossplane-argocd-gitops.ts index b7a684b2..10448eba 100644 --- a/bin/aws-addon-clusters.ts +++ b/bin/crossplane-argocd-gitops.ts @@ -1,8 +1,8 @@ #!/usr/bin/env node import * as cdk from 'aws-cdk-lib'; -import {K8S_VERSIONS_DEV, MultiClusterOptions} from "./multi-cluster-options"; +import {K8S_VERSIONS_DEV, MultiClusterOptions} from "../lib/crossplane-argocd-gitops/multi-cluster-options"; import {CapacityType, KubernetesVersion} from "aws-cdk-lib/aws-eks"; -import MultiClusterPipelineConstruct from "./multi-cluster-pipeline"; +import MultiClusterPipelineConstruct from "../lib/crossplane-argocd-gitops/multi-cluster-pipeline"; import * as blueprints from "@aws-quickstart/eks-blueprints"; import * as eks from "aws-cdk-lib/aws-eks"; import * as ec2 from "aws-cdk-lib/aws-ec2"; @@ -25,7 +25,7 @@ const env : MultiClusterOptions = { gitHubSecret, nodeGroupCapacityType: CapacityType.ON_DEMAND, k8sVersions: K8S_VERSIONS_DEV // K8S_VERSIONS_PROD for full deploy -} +}; const mngProps: blueprints.MngClusterProviderProps = { @@ -36,10 +36,10 @@ const mngProps: blueprints.MngClusterProviderProps = { maxSize: 3, }; -console.info("Running CDK with id: addon-tester" ); +console.info("Running CDK with id: crossplane-argocd-gitops" ); console.info("Running CDK with: " + JSON.stringify(env)); -new MultiClusterPipelineConstruct().buildAsync(app, "addon-tester", env , mngProps).catch( +new MultiClusterPipelineConstruct().buildAsync(app, "crossplane-argocd-gitops", env , mngProps).catch( (e) => console.log("Pipeline construct failed because of error ", e) ); diff --git a/bin/get-ready-for-test-issues.ts b/bin/get-ready-for-test-issues.ts deleted file mode 100644 index 5109b7a3..00000000 --- a/bin/get-ready-for-test-issues.ts +++ /dev/null @@ -1,54 +0,0 @@ -import * as AWS from "@aws-sdk/client-secrets-manager"; -import { Octokit } from '@octokit/rest' - -export const READY_FOR_TEST= "Ready for test"; - -/** - * Invoke with - * @param region process.env.CDK_DEFAULT_REGION - * @param secretName process.env.GITHUB_SECRET - * @param repo "jalawala" - * @param owner "aws-eks-addon-publication" - */ -export async function getReadyForTestAddons(region: string, secretName: string, repo: string, owner: string){ - const issues = await getReadyForTestIssues(region, secretName, repo, owner) as Issue[]; - // TODO do something with this addon - issues.forEach(issue => console.log(issue.number + ", " + issue.body)); -} - -async function getReadyForTestIssues(region: string, secretName: string, repo: string, owner: string){ - const sm = new AWS.SecretsManager({region}); - - const accessToken = await getGitHubAccessToken(sm, secretName); - const octokit = new Octokit({ auth: accessToken }); - - const getIssuesRequest = { - headers: { - 'X-GitHub-Api-Version': '2022-11-28' - }, - owner, - repo, - labels: READY_FOR_TEST - }; - - const responsePromise = octokit.request("GET /repos/{owner}/{repo}/issues", getIssuesRequest); - - return responsePromise - .then((response)=> response.data as Issue[]) - .catch((error)=>{console.error(`Create issue error: ${error}`)}) -} - -type Issue = { - number: number; - body: string; -} - -async function getGitHubAccessToken(sm : AWS.SecretsManager, secretName : string) { - const secret = await sm.getSecretValue({ SecretId: secretName }); - const secretString = secret.SecretString; - if (typeof secretString === 'string') { - return secretString; - } else { - throw new Error('SecretString is not a string.'); - } -} diff --git a/docs/patterns/crosplane-argocd-gitops.md b/docs/patterns/crosplane-argocd-gitops.md index 47a7f860..0e1bf7fc 100644 --- a/docs/patterns/crosplane-argocd-gitops.md +++ b/docs/patterns/crosplane-argocd-gitops.md @@ -1,32 +1,29 @@ -# Secure Ingress using Cognito Pattern +# GitOps based Multi Cluster Addon and Apps Managament using Crossplane and ArgoCD ## Objective -The objective of this pattern is to provide a secure authentication mechanism for customer applications using Amazon Cognito, ALB, and Route53, ensuring that only authorized users can access the application. The Kubecost tool is used as a reference or sample implementation to demonstrate the pattern's capabilities. - -To achieve this objective, the pattern utilizes Amazon Cognito to provide user authentication for the application's ingress, with ALB's built-in support for user authentication handling routine tasks such as user sign-up, sign-in, and sign-out. In addition to Amazon Cognito, ALB integrates with any OpenID Connect compliant identity provider (IdP) for a single sign-on experience across applications. ACM and Route53 provide SSL/TLS certificates to secure connections to ALB and authenticate users, preventing sensitive information from being intercepted or tampered with during transmission. - -The pattern also leverages Kubecost to provide real-time cost visibility and analysis for Kubernetes clusters, enabling customers to make informed decisions about resource allocation and utilization. This pattern can be easily adapted and extended to secure ingress for any application, providing a unified and secure solution for user authentication while optimizing costs. By implementing this solution, Amazon EKS customers can have a reliable, scalable, and secure authentication mechanism for their applications, with a cost optimization tool to manage and reduce the costs associated with their Kubernetes clusters. +The objective of this pattern is to provide GitOps based lifecycle management of Amazon EKS Addons, Kubernetes Applications and Helm charts across various workload clusters using ArgoCD and Crossplane deployed in a Management Cluster. This helps platform and application teams to simplify the process of deploying Addos and Apps from a central Management Cluster. In this Solution, we use CDK to deploy AWS CodePipeline which monitors this platform repo and deploy the Management and Workload Clusters using CDK EKS Blueprints. ## Architecture -![Kubecost Architecture](./images/secure-ingress-kubecost-new.png) - ## Approach This blueprint will include the following: -* A new Well-Architected VPC with both Public and Private subnets. -* A new Well-Architected EKS cluster in the region and account you specify. -* [EBS CSI Driver Amazon EKS Add-on](https://aws-quickstart.github.io/cdk-eks-blueprints/addons/ebs-csi-driver/) allows Amazon Elastic Kubernetes Service (Amazon EKS) clusters to manage the lifecycle of Amazon EBS volumes for persistent volumes. -* AWS and Kubernetes resources needed to support [AWS Load Balancer Controller](https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html). +* AWS CodePipeline which deploy the Management and Workload Clusters +* A new Well-Architected EKS cluster `management-cluster` and two workload EKS Clusters `amd-1-29-blueprint` and `arm-1-29-blueprint` in the region and account you specify. * [Amazon VPC CNI add-on (VpcCni)](https://docs.aws.amazon.com/eks/latest/userguide/managing-vpc-cni.html) into your cluster to support native VPC networking for Amazon EKS. -* [External-DNS](https://github.com/kubernetes-sigs/external-dns) allows integration of exposed Kubernetes services and Ingresses with DNS providers -* [Kubecost](https://kubecost.com/) provides real-time cost visibility and insights by uncovering patterns that create overspending on infrastructure to help teams prioritize where to focus optimization efforts -* [Argo CD](https://aws-quickstart.github.io/cdk-eks-blueprints/addons/argo-cd/) is a declarative, GitOps continuous delivery tool for Kubernetes. The Argo CD add-on provisions Argo CD into an EKS cluster, and bootstraping your workloads from public and private Git repositories. -* Create the necessary Cognito resources like user pool, user pool client, domain, [Pre sign-up Lambda trigger and Pre authentication Lambda triggers](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html) etc.., and passed to the Argo CD app of apps pattern from which ingress resources can reference. +* The Management Cluster is deployed with the following Addons. + * Upbound Universal Crossplane Provider + * Upbound AWS Family Crossplane Provider + * Upbound AWS EKS Crossplane Provider + * Kubernetes Crossplane Provider + * Helm Crossplane Provider + * Secrets Store AddOn + * ArgoCD Addon +* The ArgoCD Addon is bootstrapped with [git-ops](https://github.com/aws-samples/eks-blueprints-workloads) which contains Crossplane Manifest files to deploy EKS Addons, Kubernetes Manifests and also Helm Charts. ## GitOps confguration @@ -41,17 +38,32 @@ Ensure that you have installed the following tools on your machine. 2. [kubectl](https://Kubernetes.io/docs/tasks/tools/) 3. [cdk](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install) 4. [npm](https://docs.npmjs.com/cli/v8/commands/npm-install) +5. [helm](https://helm.sh/docs/intro/install/) +6. GitHub Access Token for this repo and AWS secret + +Create a plain-text Amazon secret to hold a fine-grained GitHub access token for this repo in the desired region, and +set its name as a value to the GITHUB_SECRET environment variable. Default value is `cdk_blueprints_github_secret`. + +> **WARNING:** When switching the CDK between region, remember to replicate this secret!!!! + +```shell +export ACCOUNT_ID=$(aws sts get-caller-identity --output text --query Account) +export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region') +export CDK_REPO_GITHUB_PAT_TOKEN= +export CDK_REPO_AWS_SECRET_NAME="cdk_blueprints_github_secret" +aws secretsmanager create-secret --region $AWS_REGION \ + --name $CDK_REPO_AWS_SECRET_NAME \ + --description "GitHub Personal Access Token for CodePipeline to access GitHub account" \ + --secret-string $CDK_REPO_GITHUB_PAT_TOKEN +``` -## Deploy +The Secret will look like this in the AWS Console. -1. Let’s start by setting a few environment variables. Change the Region as needed. +![AWS Secret for CodePipeline](./images/aws_secret_codepipeline.png) -``` -ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text) -AWS_REGION=us-west-2 -``` +## Deploy -2. Clone the repository and install dependency packages. This repository contains CDK v2 code written in TypeScript. +1. Clone the repository and install dependency packages. This repository contains CDK v2 code written in TypeScript. ``` git clone https://github.com/aws-samples/cdk-eks-blueprints-patterns.git @@ -59,124 +71,505 @@ cd cdk-eks-blueprints-patterns npm i ``` -3. argo-admin-password secret must be defined as plain text (not key/value) in `us-west-2` region. +2. Execute the commands below to bootstrap the AWS environment + +``` +cdk bootstrap aws://$ACCOUNT_ID/$AWS_REGION +``` + +4. Run the following command from the root of this repository to deploy the pipeline stack: + +``` +make build +make list +make pattern aws-addon-clusters deploy +``` + +## Cluster Access + +### View the CodePipeline + +![codepipeline1](./images/codepipeline1.png) + +![codepipeline2](./images/codepipeline2.png) + +### Create Kube context to access the `management-cluster` + +Go to the CloudFormation Stack `mgmt-cluster-stage-mgmt-cluster-stage-blueprint` outputs and search for a key starting with `mgmtclusterstageblueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `management-cluster` + +The example command looks like below. + +```shell +aws eks update-kubeconfig --name management-cluster --region us-east-1 --role-arn arn:aws:iam::ACCOUNT_ID:role/mgmt-cluster-stage-mgmt-c-managementclusterAccessRo-XYSC5PKL8WnA +``` + +The output will look like below. + +```shell +Updated context arn:aws:eks:us-east-1:ACCOUNT_ID:cluster/management-cluster in /Users//.kube/config +``` + +Set below environment variable to the above context + +```shell +export MANAGEMENT_CLUSTER_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/management-cluster" +echo "export MANAGEMENT_CLUSTER_CONTEXT=${MANAGEMENT_CLUSTER_CONTEXT}" >> ~/.bash_profile +``` +Run below command to validate the access to the `management-cluster` + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get node +``` + +The output will like below. + +```shell +NAME STATUS ROLES AGE VERSION +ip-10-0-116-4.ec2.internal Ready 6d8h v1.28.8-eks-ae9a62a +ip-10-0-175-104.ec2.internal Ready 6d8h v1.28.8-eks-ae9a62a +``` + + +Run below command to get list of Crossplane Providers deployed into the `management-cluster` + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providers.pkg.crossplane.io +``` + +The output will like below. + +```shell +NAME INSTALLED HEALTHY PACKAGE AGE +helm-provider True True xpkg.upbound.io/crossplane-contrib/provider-helm:v0.18.1 47h +kubernetes-provider True True xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0 25h +provider-aws-eks True True xpkg.upbound.io/upbound/provider-aws-eks:v1.1.0 8d +upbound-provider-family-aws True True xpkg.upbound.io/upbound/provider-family-aws:v1.4.0 8d +``` + + +Run below command to get the Crossplane Providers pods to the `management-cluster` + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get pod -n upbound-system +``` + +The output will like below. + +```shell +NAME READY STATUS RESTARTS AGE +crossplane-594b65bfdb-pgkxf 1/1 Running 0 6d8h +crossplane-rbac-manager-86c74cf5d-tjcw8 1/1 Running 0 6d8h +helm-provider-4d90a08b9ede-7c874b858b-pp26d 1/1 Running 0 47h +kubernetes-provider-a3cbbe355fa7-55846cfbfb-6tpcl 1/1 Running 0 25h +provider-aws-eks-23042d28ed58-66d9db8476-jr6mb 1/1 Running 0 6d8h +upbound-provider-family-aws-bac5d48bd353-64845bdcbc-4vpn6 1/1 Running 0 6d8h 8d +``` + + +Run below command to get the ArgoCD pods deployed into the `management-cluster` + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get pod -n argocd +``` + +The output will like below. + +```shell +NAME READY STATUS RESTARTS AGE +blueprints-addon-argocd-application-controller-0 1/1 Running 0 24h +blueprints-addon-argocd-applicationset-controller-7b78c7fc94ls9 1/1 Running 0 24h +blueprints-addon-argocd-dex-server-6cf94ddc54-dfhv7 1/1 Running 0 24h +blueprints-addon-argocd-notifications-controller-6f6b7d95cdd2tl 1/1 Running 0 24h +blueprints-addon-argocd-redis-b8dbc7dc6-h4bs8 1/1 Running 0 24h +blueprints-addon-argocd-repo-server-fd57dc686-zkbsm 1/1 Running 0 4h15m +blueprints-addon-argocd-server-84c8b597c9-98c95 1/1 Running 0 24h +``` + + +### Create Kube context to access the `amd-1-29-blueprint` + +Go to the CloudFormation Stack `amd-1-29-amd-1-29-blueprint` outputs and search for a key starting with `amd129blueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `amd-1-29-blueprint` + +The example command looks like below. + +```shell +aws eks update-kubeconfig --name amd-1-29-blueprint --region us-east-1 --role-arn arn:aws:iam::ACCOUNT_ID:role/eks-connector-role +``` + +The output will look like below. + +```shell +Added new context arn:aws:eks:us-east-1:ACCOUNT_ID:cluster/amd-1-29-blueprint to /Users/jalawala/.kube/config +``` + +Set below environment variable to the above context + +```shell +export WORKLOAD_CLUSTER1_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/amd-1-29-blueprint" +echo "export WORKLOAD_CLUSTER1_CONTEXT=${WORKLOAD_CLUSTER1_CONTEXT}" >> ~/.bash_profile +``` +Run below commands to validate the access to the `amd-1-29-blueprint` + +```shell +kubectl --context $WORKLOAD_CLUSTER1_CONTEXT get node +``` +The output will look like below. + +```shell +NAME STATUS ROLES AGE VERSION +ip-10-0-96-158.ec2.internal Ready 6d9h v1.29.3-eks-ae9a62a +``` + +### Create Kube context to access the `arm-1-29-blueprint` + +Go to the CloudFormation Stack `arm-1-29-arm-1-29-blueprint` outputs and search for a key starting with `arm129blueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `arm-1-29-blueprint` + +The example command looks like below. + +```shell +aws eks update-kubeconfig --name arm-1-29-blueprint --region us-east-1 --role-arn arn:aws:iam::$ACCOUNT_ID:role/eks-connector-role +``` + +The output will look like below. +```shell +Added new context arn:aws:eks:us-east-1:ACCOUNT_ID:cluster/arm-1-29-blueprint to /Users/jalawala/.kube/config ``` -aws secretsmanager create-secret --name argo-admin-secret \ - --description "Admin Password for ArgoCD" \ - --secret-string "password123$" \ - --region "us-west-2" + +Set below environment variable to the above context + +```shell +export WORKLOAD_CLUSTER2_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/arm-1-29-blueprint" +echo "export WORKLOAD_CLUSTER2_CONTEXT=${WORKLOAD_CLUSTER2_CONTEXT}" >> ~/.bash_profile +``` +Run below commands to validate the access to the `arm-1-29-blueprint` + +```shell +kubectl --context $WORKLOAD_CLUSTER2_CONTEXT get node ``` -4. The CDK code expects the allowed domain and subdomain names in the CDK context file (cdk.json). +The output will look like below. -Create two environment variables. The PARENT_HOSTED_ZONE variable contains your company’s domain name. The DEV_SUBZONE_NAME will be the address for your Kubecost dashboard. +```shell +NAME STATUS ROLES AGE VERSION +ip-10-0-96-158.ec2.internal Ready 6d9h v1.29.3-eks-ae9a62a +``` + +### Update the Trust policy for the Upbound AWS EKS Provider IAM Role. + +The IAM Role used for IRSA for the Upbound AWS EKS Provider Pod needs to be updated as below to allow Service Accounts for all Upbound AWS Service specific providers to assume the Role. + +Go to the `mgmt-cluster-stage-mgmt-cluster-stage-blueprint` stack output tab and extract the role name from the `providerawssaiamrole` output. + +```shell +export providerawssaiamrole=$(aws cloudformation describe-stacks \ + --stack-name mgmt-cluster-stage-mgmt-cluster-stage-blueprint \ + --query 'Stacks[].Outputs[?OutputKey==`providerawssaiamrole`].OutputValue' \ + --output text | awk -F'/' '{print $2}') +echo $providerawssaiamrole +``` + +The output will look like below. + +```shell +mgmt-cluster-stage-mgmt-c-mgmtclusterstageblueprint-I8cnZsnO37rA +``` -Generate the cdk.json file: +Get the OIDC for the `management-cluster` value by running: +```shell +export OIDC_VAL=$(aws eks describe-cluster --name "management-cluster" --region "${AWS_REGION}" --query "cluster.identity.oidc.issuer" --output text | awk -F'/' '{print $5}') +echo $OIDC_VAL ``` -PARENT_HOSTED_ZONE=mycompany.a2z.com -DEV_SUBZONE_NAME=dev.mycompany.a2z.com -cat << EOF > cdk.json + +The output will like below. + +```shell +0F745A41ECA76297CBF070C032932033 +``` + +Create the Updated Trust policy. Notice the `*` in `provider-aws-*` in the Conditions Section. + +```shell +export IAM_ROLE_TRUST_POLICY="provider-aws-management-cluster-trust-policy.json" +cat > $IAM_ROLE_TRUST_POLICY < $EKS_ACCESS_IAM_POLICY_FILE < +export GIT_OPS_AWS_SECRET_NAME="github-token" +aws secretsmanager create-secret --region $AWS_REGION \ + --name $GIT_OPS_AWS_SECRET_NAME \ + --description "GitHub Personal Access Token for ArgoCD to access Grossplane Manifests" \ + --secret-string $GIT_OPS_GITHUB_PAT_TOKEN + + +cat > secret-store-argocd.yaml < +``` + +Add EKS Cluster to ArgoCD. +```shell +argocd cluster add $MANAGEMENT_CLUSTER_CONTEXT ``` -make build -make pattern secure-ingress-cognito deploy secure-ingress-blueprint +The output will look like below. + +```shell +WARNING: This will create a service account `argocd-manager` on the cluster referenced by context `arn:aws:eks:us-east-1:000474600478:cluster/management-cluster` with full cluster level privileges. Do you want to continue [y/N]? y +INFO[0004] ServiceAccount "argocd-manager" already exists in namespace "kube-system" +INFO[0004] ClusterRole "argocd-manager-role" updated +INFO[0005] ClusterRoleBinding "argocd-manager-role-binding" updated +Cluster 'https://0F745A41ECA76297CBF070C032932033.sk1.us-east-1.eks.amazonaws.com' added ``` -## Cluster Access +Run the below command to get the list of ArgoCD Applications. + +```shell +argocd app list +``` -Once the deploy completes, you will see output in your terminal window similar to the following: +The output will look like below. +```shell +NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET +argocd/bootstrap-apps https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./common/testingClusters main +argocd/cluster1 https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./clusters/cluster1 main +argocd/cluster2 https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./clusters/cluster2 main ``` -Outputs: -secure-ingress-blueprint.secureingressblueprintClusterNameD6A1BE5C = secure-ingress-blueprint -secure-ingress-blueprint.secureingressblueprintConfigCommandD0275968 = aws eks update-kubeconfig —name secure-ingress-blueprint —region us-west-2 —role-arn arn:aws:iam:::role/secure-ingress-blueprint-secureingressblueprintMas-7JD5S67SG7M0 -secure-ingress-blueprint.secureingressblueprintGetTokenCommand21BE2184 = aws eks get-token —cluster-name secure-ingress-blueprint —region us-west-2 —role-arn arn:aws:iam:::role/secure-ingress-blueprint-secureingressblueprintMas-7JD5S67SG7M0 + + +### Validate EKS Addons deployment in Workload Clusters + +Run the below command to get the list of Crossplane AWS Provder Objects deployed in the Management Cluster. + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.aws.upbound.io ``` + +The output will look like below. + +```shell +NAME AGE +provider-config-aws-amd-1-29-blueprint 4h52m +provider-config-aws-arm-1-29-blueprint 4h52m ``` -Stack ARN: -arn:aws:cloudformation:us-west-2::stack/secure-ingress-blueprint/64017120-91ce-11ed-93b2-0a67951f5d5d + +Run the below command to get the list of Crossplane AWS EKS Provder Addon Objects deployed in the Management Cluster. + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get addons.eks.aws.upbound.io ``` +The output will look like below. + +```shell +NAME READY SYNCED EXTERNAL-NAME AGE +addon-eks-pod-identity-agent-amd-1-29 True True amd-1-29-blueprint:eks-pod-identity-agent 4h15m +addon-eks-pod-identity-agent-arm-1-29 True True arm-1-29-blueprint:eks-pod-identity-agent 4h15m +``` + +Go to the Workload EKS Clusters and Ensure that EKS Addon is deployed successfully. + +![amd-1-29-blueprint EKS Addon](./images/amd-1.29-addon.png) + -To update your Kubernetes config for your new cluster, copy and run the secure-ingress-blueprint.secureingressblueprintConfigCommandD0275968 command (the second command) in your terminal. +![arm-1-29-blueprint EKS Addon](./images/arm-1.29-addon.png) + +### Validate Kubernetes Manifests deployment in Workload Clusters + +Run the below command to get the list of Crossplane Kubernetes Provder Objects deployed in the Management Cluster. + +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.kubernetes.crossplane.io ``` -aws eks update-kubeconfig —name secure-ingress-blueprint —region us-west-2 —role-arn arn:aws:iam:::role/secure-ingress-blueprint-secureingressblueprintMas-7JD5S67SG7M0 + +The output will look like below. + +```shell +NAME AGE +provider-config-k8s-amd-1-29-blueprint 4h31m +provider-config-k8s-arm-1-29-blueprint 4h40m ``` -Validate that you now have kubectl access to your cluster via the following: +Run the below command to get the list of Namespaces in the Workload Cluster `amd-1-29-blueprint` +```shell +kubectl --context $WORKLOAD_CLUSTER1_CONTEXT get ns ``` -kubectl get all -n kubecost + +The output will look like below. + +```shell +NAME STATUS AGE +default Active 8d +external-secrets Active 8d +kube-node-lease Active 8d +kube-public Active 8d +kube-system Active 8d +test-namespace-amd-1-29-blueprint Active 4h9m +``` + + +Run the below command to get the list of Namespaces in the Workload Cluster `arm-1-29-blueprint` + +```shell +kubectl --context $WORKLOAD_CLUSTER2_CONTEXT get ns ``` -You should see output that lists all namespaces in your cluster. +The output will look like below. +```shell +NAME STATUS AGE +default Active 8d +external-secrets Active 8d +kube-node-lease Active 8d +kube-public Active 8d +kube-system Active 8d +test-namespace-arm-1-29-blueprint Active 4h9m +``` -## Test authentication +### Validate Helm Chart deployment in Workload Clusters -Point your browser to the URL of the Kubecost app in your cluster. You can get the URL from the cdk.json file using the below command. +Run the below command to get the list of Crossplane Kubernetes Provder Objects deployed in the Management Cluster. +```shell +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.helm.crossplane.io ``` -awk -F':' '/dev.subzone.name/ {print $2}' cdk.json | tr -d '",' | xargs echo + +The output will look like below. + +```shell +NAME AGE +provider-config-helm-amd-1-29-blueprint 4h37m +provider-config-helm-arm-1-29-blueprint 4h46m ``` -Your browser will be redirected to a sign-in page. This page is provided by Amazon Cognito hosted UI. +Run the below command to get the list of helm charts in the Workload Cluster `amd-1-29-blueprint` -Since this is your first time accessing the application, sign up as a new user. The data you input here will be saved in the Amazon Cognito user pool you created earlier in the post. +```shell +helm --kube-context $WORKLOAD_CLUSTER1_CONTEXT list -A +``` -![Cognito Signup Process](./images/Cognito-Signup-1.png) +The output will look like below. -Select “Sign up” and use your email address and create a password +```shell +NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION +blueprints-addon-external-secrets external-secrets 1 2024-05-07 05:25:31.465715836 +0000 UTC deployed external-secrets-0.9.9 v0.9.9 +test-helm-amd-1-29-blueprint default 1 2024-05-15 06:39:17.325950143 +0000 UTC deployed nginx-17.0.1 1.26.0 +``` -![Cognito Signup Process](./images/Cognito-Signup-2.png) -![Cognito Signup Process](./images/Cognito-Signup-3.png) +Run the below command to get the list of Helm Charts in the Workload Cluster `arm-1-29-blueprint` -Use the verification code received in your email and confirm the account. Once you sign in, ALB will send you to the Kubecost app’s UI: +```shell +helm --kube-context $WORKLOAD_CLUSTER2_CONTEXT list -A +``` -![Kubecost](./images/Cognito-Kubecost-1.png) +The output will look like below. -Select the “AWS Cluster #1” to view the cost overview, savings and efficiency details. +```shell +NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION +blueprints-addon-external-secrets external-secrets 1 2024-05-07 05:26:52.028907405 +0000 UTC deployed external-secrets-0.9.9 v0.9.9 +test-helm-arm-1-29-blueprint default 1 2024-05-15 06:39:17.222351682 +0000 UTC deployed nginx-17.0.1 1.26.0 +``` -![Kubecost Dashboard](./images/Cognito-Kubecost-2.png) diff --git a/lib/crossplane-argocd-gitops/aws-addon-clusters-stack.ts b/lib/crossplane-argocd-gitops/aws-addon-clusters-stack.ts deleted file mode 100644 index 61ea2379..00000000 --- a/lib/crossplane-argocd-gitops/aws-addon-clusters-stack.ts +++ /dev/null @@ -1,16 +0,0 @@ -import * as cdk from 'aws-cdk-lib'; -import { Construct } from 'constructs'; -// import * as sqs from 'aws-cdk-lib/aws-sqs'; - -export class AwsAddonClustersStack extends cdk.Stack { - constructor(scope: Construct, id: string, props?: cdk.StackProps) { - super(scope, id, props); - - // The code that defines your stack goes here - - // example resource - // const queue = new sqs.Queue(this, 'AwsAddonClustersQueue', { - // visibilityTimeout: cdk.Duration.seconds(300) - // }); - } -} diff --git a/lib/crossplane-argocd-gitops/custom-addons/cluster-secret-store-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/cluster-secret-store-addon.ts deleted file mode 100644 index 18d2ee1d..00000000 --- a/lib/crossplane-argocd-gitops/custom-addons/cluster-secret-store-addon.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { ClusterAddOn, ClusterInfo, ExternalsSecretsAddOn } from "@aws-quickstart/eks-blueprints"; -import { dependable } from "@aws-quickstart/eks-blueprints/dist/utils"; -import { Stack } from "aws-cdk-lib"; -import { KubernetesManifest } from "aws-cdk-lib/aws-eks"; -import { Construct } from "constructs"; - -export class ClusterSecretStoreAddOn implements ClusterAddOn { - - constructor(readonly clusterStoreName: string) {} - - @dependable(ExternalsSecretsAddOn.name) - deploy(clusterInfo: ClusterInfo): void | Promise { - const clusterSecretStore = new KubernetesManifest(clusterInfo.cluster, "ClusterSecretStore", { - cluster: clusterInfo.cluster, - manifest: [ - { - apiVersion: "external-secrets.io/v1beta1", - kind: "ClusterSecretStore", - metadata: { name: this.clusterStoreName }, - spec: { - provider: { - aws: { - service: "SecretsManager", - region: Stack.of(clusterInfo.cluster).region, - auth: { - jwt: { - serviceAccountRef: { - name: "external-secrets-sa", - namespace: "external-secrets", - }, - }, - }, - }, - }, - }, - }, - ], - }); - return Promise.resolve(clusterSecretStore); - } -} \ No newline at end of file diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-aws-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-aws-provider-addon.ts deleted file mode 100644 index 530fdcff..00000000 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-aws-provider-addon.ts +++ /dev/null @@ -1,81 +0,0 @@ -import 'source-map-support/register'; -import * as blueprints from '@aws-quickstart/eks-blueprints'; -import * as eks from "aws-cdk-lib/aws-eks"; -import { Construct } from 'constructs'; -import { dependable } from '@aws-quickstart/eks-blueprints/dist/utils'; -import { UpboundCrossplaneAddOn } from './upbound-crossplane-addon'; - -export class CrossplaneAwsProviderAddon implements blueprints.ClusterAddOn { - id?: string | undefined; - @dependable(UpboundCrossplaneAddOn.name) - deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { - const cluster = clusterInfo.cluster; - const crossplaneIRSARole = clusterInfo.getAddOnContexts().get("UpboundCrossplaneAddOn")!["arn"]; - const controllerConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "ControllerConfig", { - cluster: cluster, - manifest: [ - { - apiVersion: "pkg.crossplane.io/v1alpha1", - kind: "ControllerConfig", - metadata: { - name: "aws-config", - annotations: { - "eks.amazonaws.com/role-arn": crossplaneIRSARole - } - }, - spec: {}, - }, - ], - }); - - const awsEksProvider = new eks.KubernetesManifest(clusterInfo.cluster.stack, "EKSProvider", { - cluster: cluster, - manifest: [ - { - apiVersion: "pkg.crossplane.io/v1", - kind: "Provider", - metadata: { - name: "provider-aws-eks", - }, - spec: { - package: "xpkg.upbound.io/upbound/provider-aws-eks:v1.1.0", - controllerConfigRef: { - name: "aws-config" - } - }, - }, - ], - }); - - awsEksProvider.node.addDependency(controllerConfig); - - // const cfnWaitConditionHandle = new cloudformation.CfnWaitConditionHandle(clusterInfo.cluster.stack, 'MyCfnWaitConditionHandle'); - - // new cloudformation.CfnWaitCondition(clusterInfo.cluster.stack, "EKSProviderWaitCondition", { - // count: 1, - // handle: cfnWaitConditionHandle.ref, - // timeout: "120", - // }).node.addDependency(awsEksProvider); - - // const eksProviderConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "EKSProviderConfig", { - // cluster: cluster, - // manifest: [ - // { - // apiVersion: "aws.upbound.io/v1beta1", - // kind: "ProviderConfig", - // metadata: { - // name: "default", - // }, - // spec: { - // credentials: { - // source: "IRSA" - // } - // }, - // }, - // ], - // }); - - // eksProviderConfig.node.addDependency(awsEksProvider); - return Promise.resolve(controllerConfig); - } -} diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts index d13fff0c..7fe4fc09 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts @@ -10,7 +10,6 @@ export class CrossplaneHelmProviderAddon implements blueprints.ClusterAddOn { @dependable(UpboundCrossplaneAddOn.name) deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { const cluster = clusterInfo.cluster; - const crossplaneIRSARole = clusterInfo.getAddOnContexts().get("UpboundCrossplaneAddOn")!["arn"]; const role_binding = { apiVersion: "rbac.authorization.k8s.io/v1", @@ -39,16 +38,16 @@ export class CrossplaneHelmProviderAddon implements blueprints.ClusterAddOn { name: "helm-runtime-config" }, spec: { - deploymentTemplate: { - spec: { - replicas: 1, - selector: {}, - template: {} + deploymentTemplate: { + spec: { + replicas: 1, + selector: {}, + template: {} + } + }, + serviceAccountTemplate: { + metadata: { name: "helm-provider" } } - }, - serviceAccountTemplate: { - metadata: { name: "helm-provider" } - } } }; diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts index 0bc6b6d5..4cf7c4df 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts @@ -10,8 +10,7 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { @dependable(UpboundCrossplaneAddOn.name) deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { const cluster = clusterInfo.cluster; - const crossplaneIRSARole = clusterInfo.getAddOnContexts().get("UpboundCrossplaneAddOn")!["arn"]; - + const role_binding1 = { apiVersion: "rbac.authorization.k8s.io/v1", kind: "ClusterRoleBinding", @@ -37,16 +36,16 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { name: "kubernetes-runtime-config" }, spec: { - deploymentTemplate: { - spec: { - replicas: 1, - selector: {}, - template: {} + deploymentTemplate: { + spec: { + replicas: 1, + selector: {}, + template: {} + } + }, + serviceAccountTemplate: { + metadata: { name: "kubernetes-provider" } } - }, - serviceAccountTemplate: { - metadata: { name: "kubernetes-provider" } - } } }; diff --git a/lib/crossplane-argocd-gitops/custom-addons/sleek-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/sleek-addon.ts deleted file mode 100644 index 357652a9..00000000 --- a/lib/crossplane-argocd-gitops/custom-addons/sleek-addon.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { ClusterInfo } from "@aws-quickstart/eks-blueprints"; -import { CoreAddOn, CoreAddOnProps } from "@aws-quickstart/eks-blueprints/dist/addons/core-addon"; -import { KubernetesManifest } from "aws-cdk-lib/aws-eks"; -import { Construct } from "constructs"; -import { ClusterSecretStoreAddOn } from "./cluster-secret-store-addon"; -import { createNamespace } from "@aws-quickstart/eks-blueprints/dist/utils"; - -export type SecretMapping = { - [k: string]: string[]; -} - -export interface SleekAddOnProps extends Omit { - secretMappings?: SecretMapping[]; // secret name / secret key - saName?: string; -} - -export class SleekAddOn extends CoreAddOn { - - constructor(readonly props: SleekAddOnProps) { - super({ - addOnName: props.addOnName, - version: props.version, - namespace: props.namespace, - saName: props.saName ?? "" // currently required field in the core addon, hence set to something - }); - } - - deploy(clusterInfo: ClusterInfo): Promise { - let secretStruct : Construct | undefined = undefined; - const ns = createNamespace(this.props.namespace!, clusterInfo.cluster); - const clusterStore: Promise = clusterInfo.getScheduledAddOn(ClusterSecretStoreAddOn.name)!; - this.props.secretMappings?.forEach( e => { - const secret = this.createSecret(e, clusterInfo); - if (clusterStore) { - clusterStore.then(e => secret.node.addDependency(e)); - } - if(secretStruct != null) { - secret.node.addDependency(secretStruct); - secret.node.addDependency(ns); - } - secretStruct = secret; - - }); - const result = super.deploy(clusterInfo); - if(secretStruct) { - result.then(e => e.node.addDependency(secretStruct!)); - } - return result; - } - - private createSecret(secretMapping: SecretMapping, clusterInfo: ClusterInfo) { - const secretName: string = Object.keys(secretMapping)[0]; - const keys: string[] = Object.values(secretMapping)[0]; - const awsSecretName = `${this.props.addOnName}-${secretName}`; - const data: KeyData[] = []; - keys.forEach(key => data.push({ - secretKey: key, - remoteRef: { - key: awsSecretName, - property: key - } - })); - const secret = new KubernetesManifest(clusterInfo.cluster, "secret-" + awsSecretName, { - cluster: clusterInfo.cluster, - manifest: [ - { - apiVersion: "external-secrets.io/v1beta1", - kind: "ExternalSecret", - metadata: { - name: secretName, - namespace: this.props.namespace - }, - spec: { - secretStoreRef: { - name: "eksa-secret-store", - kind: "ClusterSecretStore", - }, - target: { - name: secretName, - creationPolicy: "Merge", - }, - data - }, - }, - ], - }); - return secret; - } -} - -interface KeyData { - secretKey: string; - remoteRef: RemoteRefData; -} - -interface RemoteRefData { - key: string; - property: string; -} \ No newline at end of file diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts index 9d44e2f9..d420393f 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts @@ -2,9 +2,9 @@ import 'source-map-support/register'; import * as blueprints from '@aws-quickstart/eks-blueprints'; import { Construct } from 'constructs'; import { Values } from "@aws-quickstart/eks-blueprints/dist/spi"; -import merge from "ts-deepmerge"; +import { merge } from "ts-deepmerge"; import { createNamespace } from '@aws-quickstart/eks-blueprints/dist/utils'; -import {ManagedPolicy, Policy, PolicyDocument} from 'aws-cdk-lib/aws-iam'; +import { Policy, PolicyDocument} from 'aws-cdk-lib/aws-iam'; import * as cdk from 'aws-cdk-lib'; /** @@ -32,9 +32,9 @@ export class UpboundCrossplaneAddOn extends blueprints.HelmAddOn { readonly options: UpboundCrossplaneAddOnProps; constructor( props?: UpboundCrossplaneAddOnProps) { - super({...defaultProps, ...props}); + super({...defaultProps, ...props}); - this.options = this.props as UpboundCrossplaneAddOnProps; + this.options = this.props as UpboundCrossplaneAddOnProps; } deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { @@ -56,9 +56,9 @@ export class UpboundCrossplaneAddOn extends blueprints.HelmAddOn { "Version": "2012-10-17", "Statement": [ { - "Effect": "Allow", - "Action": ["sts:AssumeRole"], - "Resource": `arn:aws:iam::${cluster.stack.account}:role/eks-connector-role` + "Effect": "Allow", + "Action": ["sts:AssumeRole"], + "Resource": `arn:aws:iam::${cluster.stack.account}:role/eks-connector-role` }, { "Effect": "Allow", diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index 90de7670..a4217abb 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -1,10 +1,8 @@ import { Construct } from 'constructs'; -import { utils } from '@aws-quickstart/eks-blueprints'; import * as blueprints from '@aws-quickstart/eks-blueprints'; import * as eks from 'aws-cdk-lib/aws-eks'; import { ObservabilityBuilder } from '@aws-quickstart/eks-blueprints'; import { UpboundCrossplaneAddOn } from './custom-addons/upbound-crossplane-addon'; -import { CrossplaneAwsProviderAddon } from './custom-addons/crossplane-aws-provider-addon'; import { CrossplaneK8sProviderAddon } from './custom-addons/crossplane-k8s-provider-addon'; import { CrossplaneHelmProviderAddon } from './custom-addons/crossplane-helm-provider-addon'; @@ -24,7 +22,6 @@ export default class ManagementClusterBuilder { const addOns: Array = [ new blueprints.addons.ExternalsSecretsAddOn, new UpboundCrossplaneAddOn, - new CrossplaneAwsProviderAddon, new CrossplaneK8sProviderAddon, new CrossplaneHelmProviderAddon, new blueprints.SecretsStoreAddOn, diff --git a/bin/multi-cluster-options.ts b/lib/crossplane-argocd-gitops/multi-cluster-options.ts similarity index 100% rename from bin/multi-cluster-options.ts rename to lib/crossplane-argocd-gitops/multi-cluster-options.ts diff --git a/bin/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts similarity index 93% rename from bin/multi-cluster-pipeline.ts rename to lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index d764ad86..2d8b9e99 100644 --- a/bin/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -3,8 +3,8 @@ import * as blueprints from '@aws-quickstart/eks-blueprints'; import {K8S_VERSIONS_DEV, MultiClusterOptions} from "./multi-cluster-options"; import {NodegroupAmiType} from "aws-cdk-lib/aws-eks"; import * as ec2 from "aws-cdk-lib/aws-ec2"; -import ManagementClusterBuilder from "../lib/crossplane-argocd-gitops/management-cluster-builder"; -import {ProviderMgmtRoleTeam} from "../lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams"; +import ManagementClusterBuilder from "./management-cluster-builder"; +import {ProviderMgmtRoleTeam} from "./custom-addons/mgmt-role-teams"; import {GenericClusterProvider, LookupRoleProvider} from "@aws-quickstart/eks-blueprints"; import {IRole} from "aws-cdk-lib/aws-iam"; import * as iam from 'aws-cdk-lib/aws-iam'; @@ -31,14 +31,14 @@ export default class MultiClusterPipelineConstruct { namespace: "external-secrets", values: { webhook: { port: 9443 } } }) - ] + ]; const clusterProps: blueprints.MngClusterProviderProps = { minSize: props.minSize, maxSize: props.maxSize, desiredSize: props.desiredSize, nodeGroupCapacityType: props.nodeGroupCapacityType, - } + }; const stages : blueprints.StackStage[] = []; const vpcProvider= new blueprints.VpcProvider(); @@ -112,10 +112,10 @@ export default class MultiClusterPipelineConstruct { ]) ) .repository({ - targetRevision : gitProps.revision, - credentialsSecretName: gitProps.secretName, - repoUrl: gitProps.repoName - } + targetRevision : gitProps.revision, + credentialsSecretName: gitProps.secretName, + repoUrl: gitProps.repoName + } ) .wave({ id: `mgmt-cluster-stage`, stages: mgmtStage }) .wave({ id: `${id}-wave`, stages }) From a5d7aa3071c559e4289cc649c7b5c3d91dc8fd5f Mon Sep 17 00:00:00 2001 From: jalawala Date: Mon, 10 Jun 2024 17:45:42 +0530 Subject: [PATCH 03/43] adding error handling during stack creation --- bin/crossplane-argocd-gitops.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/bin/crossplane-argocd-gitops.ts b/bin/crossplane-argocd-gitops.ts index 10448eba..00755740 100644 --- a/bin/crossplane-argocd-gitops.ts +++ b/bin/crossplane-argocd-gitops.ts @@ -1,5 +1,6 @@ #!/usr/bin/env node import * as cdk from 'aws-cdk-lib'; +import { errorHandler } from '../lib/common/construct-utils'; import {K8S_VERSIONS_DEV, MultiClusterOptions} from "../lib/crossplane-argocd-gitops/multi-cluster-options"; import {CapacityType, KubernetesVersion} from "aws-cdk-lib/aws-eks"; import MultiClusterPipelineConstruct from "../lib/crossplane-argocd-gitops/multi-cluster-pipeline"; @@ -10,7 +11,8 @@ import * as ec2 from "aws-cdk-lib/aws-ec2"; const app = new cdk.App(); const account = process.env.CDK_DEFAULT_ACCOUNT ?? ""; -const region = process.env.CDK_DEFAULT_REGION ?? "us-east-1"; +//const region = process.env.CDK_DEFAULT_REGION ?? "us-east-1"; +const region = process.env.CDK_DEFAULT_REGION!; const minSize = parseInt(process.env.NODEGROUP_MIN ?? "1"); const maxSize = parseInt(process.env.NODEGROUP_MAX ?? "3"); const desiredSize = parseInt(process.env.NODEGROUP_DESIRED ?? "1"); @@ -39,7 +41,6 @@ const mngProps: blueprints.MngClusterProviderProps = { console.info("Running CDK with id: crossplane-argocd-gitops" ); console.info("Running CDK with: " + JSON.stringify(env)); -new MultiClusterPipelineConstruct().buildAsync(app, "crossplane-argocd-gitops", env , mngProps).catch( - (e) => console.log("Pipeline construct failed because of error ", e) -); - +new MultiClusterPipelineConstruct().buildAsync(app, "crossplane-argocd-gitops", env , mngProps).catch((e) => { + errorHandler(app, "Pipeline construct failed because of error: ", e); +}); From 26c4fd63ae5cb7f6bc79af296b08a7450abc1ebf Mon Sep 17 00:00:00 2001 From: jalawala Date: Mon, 10 Jun 2024 18:48:51 +0530 Subject: [PATCH 04/43] changing workloads path for argocd --- lib/crossplane-argocd-gitops/management-cluster-builder.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index a4217abb..9cc2544d 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -6,6 +6,7 @@ import { UpboundCrossplaneAddOn } from './custom-addons/upbound-crossplane-addon import { CrossplaneK8sProviderAddon } from './custom-addons/crossplane-k8s-provider-addon'; import { CrossplaneHelmProviderAddon } from './custom-addons/crossplane-helm-provider-addon'; +const gitUrl = 'https://github.com/aws-samples/eks-blueprints-workloads.git'; export default class ManagementClusterBuilder { readonly account: string; @@ -27,8 +28,8 @@ export default class ManagementClusterBuilder { new blueprints.SecretsStoreAddOn, new blueprints.ArgoCDAddOn({ bootstrapRepo: { - repoUrl: "https://github.com/aws-samples/eks-blueprints-workloads", - path: `./crossplane-arocd-gitops/bootstrap`, + repoUrl: gitUrl, + path: `./crossplane-arocd-gitops/envs/dev`, targetRevision: 'main', credentialsSecretName: 'github-token', credentialsType: 'TOKEN' From 7a6a63a9f5a0e98d3994ff9053debaf9a3313665 Mon Sep 17 00:00:00 2001 From: jalawala Date: Sun, 16 Jun 2024 08:07:40 +0530 Subject: [PATCH 05/43] cleanup and add arch diagram --- bin/crossplane-argocd-gitops.ts | 38 +----------------- docs/patterns/crosplane-argocd-gitops.md | 1 + .../images/crossplane-argocd-gitops.png | Bin 0 -> 128758 bytes .../multi-cluster-pipeline.ts | 35 +++++++++++++++- 4 files changed, 36 insertions(+), 38 deletions(-) create mode 100644 docs/patterns/images/crossplane-argocd-gitops.png diff --git a/bin/crossplane-argocd-gitops.ts b/bin/crossplane-argocd-gitops.ts index 00755740..7ebbd0c9 100644 --- a/bin/crossplane-argocd-gitops.ts +++ b/bin/crossplane-argocd-gitops.ts @@ -1,46 +1,10 @@ #!/usr/bin/env node import * as cdk from 'aws-cdk-lib'; import { errorHandler } from '../lib/common/construct-utils'; -import {K8S_VERSIONS_DEV, MultiClusterOptions} from "../lib/crossplane-argocd-gitops/multi-cluster-options"; -import {CapacityType, KubernetesVersion} from "aws-cdk-lib/aws-eks"; import MultiClusterPipelineConstruct from "../lib/crossplane-argocd-gitops/multi-cluster-pipeline"; -import * as blueprints from "@aws-quickstart/eks-blueprints"; -import * as eks from "aws-cdk-lib/aws-eks"; -import * as ec2 from "aws-cdk-lib/aws-ec2"; const app = new cdk.App(); -const account = process.env.CDK_DEFAULT_ACCOUNT ?? ""; -//const region = process.env.CDK_DEFAULT_REGION ?? "us-east-1"; -const region = process.env.CDK_DEFAULT_REGION!; -const minSize = parseInt(process.env.NODEGROUP_MIN ?? "1"); -const maxSize = parseInt(process.env.NODEGROUP_MAX ?? "3"); -const desiredSize = parseInt(process.env.NODEGROUP_DESIRED ?? "1"); -const gitHubSecret = process.env.GITHUB_SECRET ?? "cdk_blueprints_github_secret"; - -const env : MultiClusterOptions = { - account, - region, - minSize, - maxSize, - desiredSize, - gitHubSecret, - nodeGroupCapacityType: CapacityType.ON_DEMAND, - k8sVersions: K8S_VERSIONS_DEV // K8S_VERSIONS_PROD for full deploy -}; - - -const mngProps: blueprints.MngClusterProviderProps = { - version: KubernetesVersion.V1_28, - instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE2)], - amiType: eks.NodegroupAmiType.AL2_X86_64, - desiredSize: 2, - maxSize: 3, -}; - -console.info("Running CDK with id: crossplane-argocd-gitops" ); -console.info("Running CDK with: " + JSON.stringify(env)); - -new MultiClusterPipelineConstruct().buildAsync(app, "crossplane-argocd-gitops", env , mngProps).catch((e) => { +new MultiClusterPipelineConstruct().buildAsync(app, "crossplane-argocd-gitops").catch((e) => { errorHandler(app, "Pipeline construct failed because of error: ", e); }); diff --git a/docs/patterns/crosplane-argocd-gitops.md b/docs/patterns/crosplane-argocd-gitops.md index 0e1bf7fc..381cfaf3 100644 --- a/docs/patterns/crosplane-argocd-gitops.md +++ b/docs/patterns/crosplane-argocd-gitops.md @@ -7,6 +7,7 @@ The objective of this pattern is to provide GitOps based lifecycle management of ## Architecture +![crossplane-argocd-gitops](./images/crossplane-argocd-gitops.png) ## Approach diff --git a/docs/patterns/images/crossplane-argocd-gitops.png b/docs/patterns/images/crossplane-argocd-gitops.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a4de90418a95a23f3d850647db3ad948aded54 GIT binary patch literal 128758 zcmd4(cR1F6{|64AW-7DnGNK`5uViFLSs5X#j6#&MvLlj6l99?LLLyYQWE7Ge6-vX% zsI1KU@$U2ee(&Qx?&J9V{X37(bzGn8a-QdVy(nDjXQYx9L8=9fsMt=ozJkdcz_vy(`?ByDvSW1ss!KV7yoo?lm< z?Z3<6WzS^5B+d9T{zAPfolzI%fui`lfsE|(By-u&>FRF`#Rckr9Pj4HmNii_d%&3Ljviums}_V%SMCDVT|bLP z)c-EXd^4`HJxMja?(d%;Ogua>ZEeSxSy{ili5JrRQ11GHH83!c{g9V%j^2YU@j6t7 z%m)-s^Zk1rX8h}VHCLq|o?{mc`Nd0@e!V?3!+Y=`$1}H2&IUZz*4927Ym4H(b7!AF ze=b#j#HFc?hWK2@p&d9Poqe?JtFWzXvt36;PxU{xa-1|`q^z3nJL$7B^(@_3u)XiR zD|-|#-=ot%_SIgyw#oFd<@Nf|O|k>h9{+vY*7^vc6OVaCMCixI$DjMo3qH20 zbbN<fw9%XQkXNn%|YH+I!Wym_N@EJ=)Phs-&#ld03w z(>^oRi?c7ciY66y42t1R_B^;2=d_%fE33bnd4BzT+M!x#Dm(7!{AF_TM)yN~S#9^D z#K}K0lVC6Qop(N#qVVGNgp!Ys&&b?(_w3xk z>Ctz_YgezPWo5l`w&Uf?Xfn$0eLhpOBIf?()!qY#%`GiygMxzm*Z=;YWo2ZF)o%ND z9?Q~`zrVGPy)VwxH5T3!yfF1)6vuI#io1(zHc6J3%qS?JwW{>eP*G8dvwm3dx#61K zrwUJ9iS}E>I~K0Yd{viGPdDHd6MJ`-_ho-S8!r9uv13u@Mz#U|{!#^z6!IfwoE(Q$9jw}fsfJW8oXDLO;u&T2pJ z)%kuK$C=7q38FSPi|v||3zhY{iARaGD1GbTd0r}&!^XzU^jz}BcK5JopTBrajHIqie1u?_KwaT(&0Sg4A&3k*u0PG%dkE!e11vw)V`l6 z%l14=dV2N_Tf)d^YBy?Ld!2Y}>GZoe>*2$G-_@?{qa{1c`S?n>@aMIa#iCzJS=w>- z9f}GHPi*VSEh{`W7Z(@5e{pG_&e5ap-`=o%{qbY;OXH1}jt(sq6*AO`@Ex*lw(}Fc z5!bKRe``$?cl#)}pOK8j8BM*uzOGpmFh5};Y+mw8LG%s^2e~AF1ZRt7t)r6^XX&|t zZKz#kTaY>O(bS4$8}C1r106$qq27FmSq2(WmJ!Z1O;cuAEwIu zWsiu+y=*HM(h^CjQWwP`d93_H)#ayDniRRlg2EQ1E%udI1t)E#)YXko{CN97&CAQH z&^2)B^R>NPp}aKMiN1xdtiooz_Xg1(y+u%f3XU*R+B-V-4ephaVkRRaW94L;MRi7* zecC5e={-~a?ktWe;@FYmTGF0p^f1|jRwujb>@S@FHc{)+yL+^*N3>L6k(Ka;sa^>Q z39Xe2!K}f|!qPkF`1xfR>t+&q zf!)`ZSbTlyStg=zzp|x_mA?BX(m;Uu!o`av@6N7!Eq?Ou_qELLwU9a)8WG{_==|D2 zORL%9#DLhd#Ua0$b0_$z5NcCk5BF{H|k_|N;x~}IdBT-9 zxei&Zwg#D*nH4r~-MaMvaSbIV*ofw_*REZAEt4Y{CmV(@?D4&SDd2jV~gQp09Q&`Gh`Ee15oQFOUA|(|jUU74{`oKs3qz!dUpSioSEX^Gne?WG{Sq zwRvka_4{(ylZDM(TwI@j{=}U{Pb>rwX?a6U$7z4DMwCR$t-$_J?}2lP`|3>4M#Cl^ zf7=qPnW5^*(k(PhOy-*B&K10t@w^-)yD3^TbiDgv|6q9PE_HQEw0V0^Tqg}JZGq7T z>uTT6Ym39OlXs#^N+hDV4wdV5OOi(Z{z$#1nJNBZ9{9%{ZSeERh=I#J&&j@Cr)71! z0CefSlk^(u>QaB@@E{g8X9z_0aZ?&zGPbaAF0Tpv`;E<~PCqB?>M&pjnCiW=kupNtT^JT{_v@4jw$nuIMWzAt7;0q&{bKYASkl)&FeSpu9~7 z`LnHR$>cjkeA+*hV1p>ccT>8Pt%1UkYECDT{F-;|u)1PbK zzI_7BtBTPPxi3Z!9gL-mxOr34z~I*0DxUli9Uaxfhe-sSGRZf6J(zgs&Pe4A+j6~W8L_h$v=Mz{P$ zz>3WM2M-L5jqUqfwuS_6-=~+R6~n!kf(Z-TrZ&*AS_vCVANyy3RA_nwo8$Gu0jmn; zP-?mmUK;j;7kBT~PdPXD5%{{)xpxcJvdrZN0E$~2931GDP1-s;nKu4*1Wg2R<7*V{ z@^?~EQ=e|RwW}n+xr`I7AtEM5mP1ZVgOSp*%7=+x>!y0DQb3w%{-l&1Yte2#zF;ii zd%sYbT1xmyBeS0yk|fX2lSbn7mGay<-YqRH$vX(k$;sK)1(VTn4&UB$RIV%}f>W1S z<4$~h??Ew(;RSC&^iYLAZIUGcl8$Y4IlA`@jvo(sm>Ou|bq*!%g12`wHbyAbR#x79 z`!;?1_HA#Gk)>r6uH;Mn32T+JX9ZMMRi6Z`EXc=PT3`JeO&@}l9AMiHv?_6?o#w%p zFQ-dg`t=qjZ|h{goS*CmKu4`aWiA&$xs5iw0EssB>exL{iFw>RKxcPXNp8{`?k zJ1aG>=Uv!Qq)ksxFL&{4#Opny5o2!+tJ9_lkZNk`nB8gM2?V2r#csbsz_8XtQ3}%A z6h#*)fwdkZ{oe6E>dYGIT3Y>nmVmGt0G*S>>KhP6w>cLj5SgSDAa5P`*I}S0aBcb2 z^4z#wz;fx&aB*ejTJ7({^0*doE*g4z8NXrm9tEJRQr4LDl7RXieBO<=lahg$)vU_hEw`YTD56@VwqfjJItuFn#;Nfv+&~>1M>Y;vW`0>0~lSQ>RhXYsW?#Z~m#42H8WDIs6 zZAuT?Snpz{G-NJDUp$9*zj*QD>~M|ZboHXOx~Arr6u;@b#o@QNfn#UEu||Qp6BqEz zxo@zEhF4Y|Lbqs%nif+3LA*Vl1)v~(4$#DidcvKtglz}Bfvw01Rw ziC?p)!rmevgsFD*_l?dyBOVG03IMKQzMszZv28WmCatd)PFs)0PBL!ah=~TM$-EL5 zw;lb5QeR&`&(++VLo=Gw;g)uKM|(TnKZ@-~T0&C*Ok}q|b7n_r^^X+4CvKnQKL#v* zA_c#HZ|Z zu&~!56d}AlLJiZX3iY`4$I6ZJjF+aK4Zq7inz&3iM2V~VAIRxWv58*Y%}vC2Zp_f` z-ZFDyLE+TX4y7C5Gty4HArZ+BLqf=Z4pr|Uy+e_k7kKzM~3ns?KXaMB(_4Pg@S2l_H%-RyIm_TOd z!k90ipZP6LOZ(wGBYtiI!fOwH_;BCC%&?8ip1BH%1i>9xP-qh)e>#+ZEYGOh_Y9V~ zWG}{mxl)k0FMnkk_nCj0fCU*}ZsYTr3iqF1QgZtt?`f&QpnwlWmM^ve%#cVZ%B#Oy zMFj)|>K2ECM9T&$y^A{k?9;m+fqQdb-cx6b{MaDHVN=tDIcs(nmN0jcp;6`@bst3*wj>pH0OyVw;iOR%RjilA<2U4br|TJ7>pg1#)xvwpfF1! z+4kfb0=k8I{2c4dr2Y{e7N$KDW@u>G6=?PSJ-U2W)O8eRUIm4nHvYe;baZs=Jq40) z>^I7>9j*x|({s($=dCC&#|NH!O>qu_3>ArQW9obWs+a*LM5(aw-j3j*A~rQqRaFWC z@o(f)hx1Q}e*N|>Ju8c{c70hW(Sn~Z?(O}9p`n`?bUNbV;=}`%J%p_)j4hT=Oiuh$Xv?g>ZL53?iVi)j%;ucG5 zmH*$8pGoVN*1YCpZ`}&UrW%RW;*KS+0cQix6z3RuVv-?n8XZJHQ1FqsfT0a~22tI6 zoXd>Wt`htyS&LBlMLc( zroMi)@0`R2WC~jUyU%U7CK@*<13Ru@LeEQInY|Mq!=gIc0d9C<`r|=TUAo$}Tk-K> zw{9`|`1*o<(j4w(rnh>q*$$|4vX`5rs-~7bg>ygh0XS05f9Xl5*E|ao(-i>uU55_s z*uM8zU5cU~i3CY9;lRCtj|7?_E@}V%dO)~z)BH|A7Wvd#@Nh~hs#5?u5m8ZBkLTSP zO2nF;Aoz)-kdRP=OHp-rYT)wbL=h{A!M$Q)j6g6=ZFeOdRy<`d(cO)!a%|^Z1?KBg z_<^lDTHMSnd3F&y@MwSMS*eH{H`Gu#Cjt~7Xvgi<=3oVJ-&pRieFt<(y?93F$PpUc z2Wk@00bh#>e>X5Uzs{h%%E%Ki7dz*m-8?YBalU#!p}uxcZ1oX+{bs=R>>tpj;(G0I zV}px|MBRp}Hm3<*ARc5y1WlgLS0jDJutaO$%_u`=wSm?3(v&K>C;ZYLxoLn~poied zv$G8hqi8YBB@V4wZ4hb`sU1i^Kfc)h`t|Fvq3S~w-ZS(J3=DbUVQy6mb*TNoL-~uB zMMOlF7Hc;?Q9=gGI7Dc;jzELpIW*>jCE^1E17={x9{hC10eKtKl{36Fiquw zTkPC>G4o=D0H9t}v?pUp5yINaLVUu)#|YstXDlG4WNCI8v_O&8qVW2eAzUjmt4 z@gBO|{B=^&lq82rhc6I+U)0(|vw5@lK+(bbihisR^}-Vq**<>!NGMxq=YaHS*ltJk z^kgiKm88!!0Fi^BhtCNJ2}us>)wY9Ra(WzifU03`vuDqq=n0%pGJ}de)u9aPPSGbh z#)6&cYMU~6ceGkM-s!_PBvPfcGV&=qF2UP7PQve`+}x(~`Vp>sI%_ zza6fIhwJ2@PkLHyQK)HZ$_jykxaz097ykm(-GUH|a`FXQt}1v(^y8XN_NGYBp{mQ< z1D5Ah^z?4N{&S`+X_xL@H2b){x~k63f~Yl6x3BuL2&PE8uqv(2s*V5MalY!xz|%9W z%Lan+#8Y)}%#{>W6z6N# zWb{&%T%|mdoO4#<-+uV8108$p!?Pl0IRRneSI|`*rl8Bpdrn+UN@Ay^q&%|b4_UCw zI0;sg(*|&WJ=M>Mh&EkD%2%&m^{_{PjwTk`XP_wq89E(0c+k9Wy_qNIPWe$CossX~ z_xin86$3Dvwj`wG+p6ie4)AXx#V9VYTRd~K`k{on3BDli)U{h-zQ?E}B%*0T9d;K4 z7y<_uOusYG(9nP$SuvNZ#PH(zb2G21oI#ch0X{&q80B?2a&mG;cJ>I+{N5J{nrZ>q z&VXADWiI^$)A%`D%Yy>e<^IW;gtCpgs7!Ea!YJ6Yhw4m6O1#@_YilbZ-;+$Jv^|B_ zCIy&2UB=>!O-OKjvH>7<*xgp7)@!VrObEl-Zgt-d&O8(Ex#AyzNS}7V0!yR zHz%Z(dm}8c6??fJI{mxQIv_Ut71&QUMVBFZzZe@V%b)v*A`})D=7S|z?Em*-=tAwr zdgYy)3Lawy=iWc5Pa~w<|DjFgVAlfiI+>%#^NjIXp~p70B2$Mv#%@XNRbdnZ9VIZQ ze2rZ*{oG`KM_SRDl*>)F!}reDTwhx9Sp{yUj$dlugSJY#u(IGvEKzuECAH&IAD)pJ zSNF}%ULcv|Cqoy{gj7JYb!)>FicR*e^Ar-oMQZB0t_wd0N`6#yuwe<2e)nDlWWI)C zud{*&cETng3}ysT4LcP6(5CoK?62`=Vv21iY`fSyI@v1H?rVGzs9qq5GRgFlKYpB< zJ({5ONpy~`_;llz0<+?bw^R2j*pp22H2@ynK`8f*Z$O@Bmv!5T?Rg@z_uKpd>niq{ zsz3B7F{Un+Kr8nTdD9;@*>#97BZrTMysyYc^aC*YJ}SNm)%@N!IgVqS_#TN;Ju(n5 zFg2wvG~K#s)263v-_OyOSw!QSM?p1E71*WDGEUcS1iCQ55Nd1lQo0K)+Lt9!)Fxp8G7}dh@5j=lZbpkj zRseV{FE1HV8jOswk1r$%h>QN$I{4VEnA|Am7}>0M!d0kUfh$w8p+T*<6avP>sc%|ngD_R5@2^W-@ zQ)0psw|+;#klBUSGBF|HWplHZ@8jcn29}n>io?&&^T3PXQ{=$~m&3$;*8wp6d32Qj z-r!>WCZ05)xg}KIq;VK6T4s`Xa8bRgVkZorNW1in;87&WxF(+qg0@AF4-niv0eo<4Qxo_&-*F6n|UakeufY;JaTHu&k&rz#0l1}w~d zGY@@JJ?Z$E+1PfhSsoA&I1J_XoM0&Aea>q$W9rfN1vKx`nco2okfQIcr=6@$Up{^Y zZW7e;vZ0S**REy4l%RGc#1h~o>X_HeYwk{E7F7#_E(BORz%^Xvk~mP5XEO_5RfmJV ziClWw^~Q}GyCV6pckJd))I%ruXABkFZ3=!=`w5Rw%(jjMeVk0z?PDGBIKF>(G-ynT z$W@AB;rF_D@%E5@?aK6_s^4#fG&??(yYAoy-`&fVdZ6X?YeG)2zj7MjsfOSwyP>#- z2H=`h@rX#q2c+-D#*&fbP!_7Y+;-RjbQ2hWMza9YmUbvpFV&_^ttmTJGzyE+EJl9* zjDq%T`TPRe(9jSgW&Kzgu_tyOyhuqB1E?abd+Eot#=f+CV1_QiqLOISkb~mImQ!5i%0lT#G9hFa^70W>T;5$3U4UJfXtGf<#=5-j0 z4^^Pj028qR4cM>1!!5F|eh01#V|ifg1@>+;WSxC}(58}I1vA9c)6*|px)gdm?5m`;-o{DBaBg}VeksE^Fs>bt-l`}s}0`sZpoKZy4^2uVc^U! zf_lKMx!~ocX=cU_d^!vK{$>!=^AtRamX?+}$UcnB%)1@V_ZSB?pbDrROki`S-TFMl*r=o7`a_#b7J~9%rp0`rL2GN`6R!&u~P|w(M|&;d#LGm zMzpjX*?%-+@2OL#*cE)9)JttM!UexWF@cRO7xQdd_reN65`oMh{(!i1kAV3HBJzMh1{PS7gu@mhH-PptiuOD<@N^$A zZUnF+^)ogNCivU05)Paspfx15(ILMX4SW0D(=UFc_|}$JbUBv+AlCzKWCaj`05I%( z9u`*%g$^8ur&?%d>DkA}H%WMDv=Bt_`D>7#U%Ms4P5%WGTBc$HAK(`kH}nmh>^lJM zUloZDK|w-zkDjoBp$ltB&U^ZPDa^NkE?t{|F8A8Cg_His15wv=Jka94oMmXYhi}ps zc&+&2Hyu))P*GI~-42-%oL}6!Ul3OGL2Yh8 zV4y9q`unz#cd6u?jj8fst0{?9ftRA3nE{+uyUk84@7aKQ{9g{_o=ZizKxD}`+4)6T z59=qz#f`6C@$&MfsjM-@y87URvmJID85wm#P|C{6s_X4#0sPT~E;ZR}gUo@~%n)7L zBlf9VyVSDkf*;ds=tAqxqLq5!(*O8#cA~Y!@{q%$HRPL$&vx>WOv+A&({n{$FkKLDJf}I>)V~X8J2+UeqTABH(y@?_e1`iP! zLwJP^yb`LgOTlX+D+>!wloR}~&tJZTK+MqgQb0oG^t>RnCntn1>@`9BiEh)tploT^ zPLBM>`1ti#uhf6OFQx$0L4QO@3oGXeHnB>*3{+a>^(6`rMe2I`Pjn?BjVBg!$D7Qv zkG~!qcbkBod<8}_`-2-lzkd%Wv_gCj@o9*AJ+*EhZ{EBKfoAK=h6Xy*ckftUtbD%4 zBYb=Yg7Zz&{P@B)0}G2S-rn9>+1aP?K|qNxl#kZ+yMbbk;EKT5M2grOY@j$CLcp&bt(sS@Eb*i1sE1-VAbPEJk) z{wU4RoUc&RSNNr#*{lN}{tB8_TU&GUrs04^E>u!MA)(lml$&Uos+pas3QdFQe3((I{^Air3NXHoI61&NIg@8P&}QLl6Kx-aVSzO84+ zp6vimB#1Eh(oRKRW;`B%`LLK627H84U~6zTKK%=rtCQ&Ust*8jY>i%G}5hW|xFBFYmQy>0bi47<3h#fyJm$iUEC>eM~^ zHBP^8yez4qTVFZ)>6wl`7meE$RkecgI;*2R8@JY~H4N1+Uw&bpa}LZ$VSQ<|gq8+0 z+`?ioZ5{A*f{@T)K#o9Jj&(gngaqHbc{9-?0@-RoC?n9lB)qGZqcUK{D|03PZAS+K zgk-lKX^7FHYlEh1jy;{7v8^fFq}3$PyuCxtq^~&7oZ|mm8yeC!kQLZbTJQsB!CsF{ zK~}SL2}0$KrINWF7ndDHjfZb+Y6_}B2+;(A)4f>)JaYU(x^Ll?iqgf!MJ-iTa+F!c z++JsUdwbj8Uthy7+lwj`4#_q7XZKFWxA(6bW@?@S+IW89Gr6FkAnhOmIX-C7e}8}L zD&_ceho){xsuGR*3qpm!2h>o8OKsTfP4jz8+RBq7H73p+9LKp9 zv}8L_;&9wC^f5#B@%>hRP)=R~+&+PVI^e=eNd|2Y@gyE8&S;ICHby4H?$OGFh7_0m z{7(AOsH?MP3sG)14md@>d2>CC-f$v6mLc$ksKk-Fg3Mduj{Y@G4Jo#Ny)AR9W^Lhv zJQe>O#X|(p&Kj&-y-G>TqqGxHLiOTB3Dg#BF2?QKLve?D{0@$UqZLB9XnirJ8^hNSxTd1m*!|;=nG%_YiOexdEX= zwZ1%P2hasd0xIgRz{E!Qk{75OUJ9(3rRC+*BXw7fD=+_u%!m-TYa(h+$uAM}5`soF z+U9&RHxgvPrKqLBL_7CjWGV99n1t84#rB2&HQp8Waq}+ef z4z0;^OJt9hRmo382X{Frk4bqfhw2?U5>YClVYecY1Fq5KrM7&&_fhlvMA?Ty&- z5q>0~5%hAzX5t80KP`=PxOZC;k!!`B3$Cj>EO+QoYmJ$U6z3{-=qvzCD1*}3cPD&( z(U%?T??O78o_L?n#t z)8JeGDsU|v8O@btf@Hc{jigoJS?hd&VgvAdiz^7$A(Xd$iZhTjSw*ca?SgU!k+8~y z$w~bK{D=q|)2c(lxyuB^_tOCDIh=uqp2RM5j-6o8-ym@)!g`SNTM&kOzZE$)P;@>y zId%vuq(=#~s5sYjvIz^l-Pd*P*fr==?2xJvu9HzWl;Yf-cOEY9|G(P#A_M`{*t@^t z;#=s)J3fF1mV7x9(ZanyUI(Hn^zNQ9cN_~W>P8e|Cr}FSmIXkttX@XkBx8A0ijMD4 z7Ecs_e>pz)??p?r@@sEeTeDq}As}8YeHW6cW4TT{QZfzX1CMfMXJ?Zp%7q;RK5WO) z9f*w5HOK%FKjYV(*>yWpXxr}}>>iV0VluS*_qQYtBmuwQPD&DRC9=)x-@CGo`fUk$ zXKaPf6R%hfsZ(ZYn!>i){~M@xh;`xwAWV3EEbjXC>!%Vn{m&ckn(byMz;N4xL;c$l zowvEWyZ3RE|IZ&k*^;%&mo)9<#G>bO>F%KawnoHPo`kgpArMlcCR($^M~G2SQLs)= z`pNxwGzsJraLzy*W(Qk^Y4%YyKsMg z-U^hVB$9zW?8{_s_{gPG?KFIcUi}ww=PPj_!bH2)Y$>~4zz6<+?j_URqqeqbrEp|j z%iM|cL{n;^FUDPFy4#A-M4=)jaujO!b8vV6-9emfdDLB|9(#4eJAvsZAX8ts@Z@(y zFx-K&Qk0u59(djUwbkV8F>Wd9=?9 z*q4NbjBFDj_A4kVl96gR)(^ozAtPa4;5l^4>J`~%Xp1``lu?uX;W80B$K@I9xj&6MaCF$SkL`+l4a74XZOCB;_yIZ*tZdT?T|MM@5 zQ-?pRWP~o$wSd}j;m>#7@yoCiP(%0?3CZoyBDATl1rR|>($ZLF%$bw(5AIOF+3oI5tB_tx!1O#Ef z0yZG%dLu(%tJo?${*rQ_&aMTN@z}UH{z;@I>|o1v)eyNEfCHG?hX^6z*j))K1m7gg z)po%S`}OPB@h2*33-=B-&6W!~kIjUJVTm6+ZhJ<$h(RmIrM-(Lo&!q1KzK+zz%rJVu>??N|#$-rE zw~*$D?BobiK?MAU{z_S9@oA)3hHaTc2BqU)5y8DNqJV;&p^OA%k`uT#gwI+OT5QFg$kb*qw#Orlv^z1^!|N`c~-%&&JZV zq_{YvBKKi@+^hQXpYOecN(T<;I!}K4w&zezuX7_PS40Redlfz6zcoaBjesUyzhF)1 ztf1f8IR#-dqcjLDE2FZ~uW;irq^-jK$@3y2md|;so6vJy7_Pytd;v^o=t~s1+}6ck zIgXOuQkbu}0i>qNNI9O~>Vxd;4v0o%q)M-;+i&xZPHp;B^c@QhK79k$jD0_hJ2U~^ z*~lm%Bxt~)$ViaO8^MO(71=104kPD){P`wxzqLHhO$^+W1||%ui4TZW;*n<00j>(K zx?yt$@I@cEQQ2$YXzH-|3G@!G&0e@>VCCqT^YcYu(ER+jM4QtvdAmw?z-o7Lz6MF@ z&`cHo%CpBY2z?TS8G^y>1t`1??d^s2qpo^$lKhC27RnLH>rJUa>n{kCT7vD~W=$|p zZJQj=d2XUI^!gDM3jcQN&K<%X13uST@le_N34<$)xNgFg%*f1)O-_!)Uqj`Y67FXd zdrevFza<9LLaO7BQQ+e$vVMON#Rs>8l$FPdLR;yviXh&@(n3Ejc(8M!92@Y^9a=+8 zjg4*FlcfptK~2jZ40h5lzfe#h>~s|R3B0b#f4{~NjGc%djD#|9x*G8S zh|z7?g6Tc<10q%ijWTEil@A-;Z8quN*8jr<1INTNe92mgu!jou1JL|)AIf#hFRJU- zrZhJ<^TXeIlZ)Vr3T9BgjE=_Mxnp1UB_091!qUQ4VRrG;S4+>s^gSL;Lqb#((FsJF z(u_rk>JLj%bh=_vgk(}5fw<534Igmm?7=N0l*B9G01Ak9qxId2c7Z@dl=+)G4;~+V zpI=nE%T#Eu#R=#*T5fKS=ls9Cx{e_yb(pBL$VzIj#Bd$zOIw$ekjR>X|IG}07_zsV z+()JXCS+29OXgZdYmYFXS6(W8r)3K5Z}LZSoJEAL3Q$YCPg z0V*)gcEPGCOoS%AQq$jG0ncz(WJY7cvcjeBQRlW0btFeW^(I)EPCXeE4}z<_%~vu} zV~Zl@sYu4U?qtE(IIm5|#Y~eVV7VdT*$ip47!erA{VMXNh=Ja^n=ZP0xB4Kf1``q; zdu^VI6EcNjEp}!06cP$fm6$6SlgP>$i#fV6|7pKRqahhFLSi^d$0>CLdynbv4P8op zoE!%GL<^G)6<1XDVY6GftJS7lowgjAu??F}dW$BXefXM4M0#uK*)fmc%`H#&kuHm!M)c&k=@pTPjQoRSq^)cscgkH(?rDIUPe4|JSxVX=K_Z=!$rD9- zWJ={kgRH~ArB8w!hkHx1Q zdHh5>E?K69t`T2zXHq{iH-&?2RZ&AF-QdVk@4hCW9?S}K{TWQCnfvoc4RTxd4B|NWT9x8^oAfgG?wVJHWDVj+!`_w88)Q-j{#!6oO~$p>D9$K zNe(n-g2G}uI1M)9e#RyxMG#xW)zfvZ_SHnB#f0hWcd6m&!+N#4Mo0Da6ImiYf@huE zqN1Te1#Q?Jn1W<-Wvf+FcxWgE9vG2J&8vp@?YwJltdjzC0r;%kLxGP^HDMQtM2w^n zN*SUD4a37Wk2-##gz2~*qjFUG`*r*N!^SZ5vR$Eju%P}Cej3b+Cx{(*ObwdIgUy^= z0{3IuvEv3jUD_QowAd@;q+_W{Tx=qihan3R-!i^)?PUs)gf35n9+8&Di@C3Ds1wok z?4ChvX@XC-BeDo(mm4UG^?<4K0Sao`I(Qujc~C=v`_~1CCu?Bzct_;M$){2xB5!TE zjMlW!(QqnP|% z*iItzY^=rax<|tFNG`YWEXyP2HQysAA5_mw(&G zO(9z1^1Eys6Vs>hIpsqbNK!K1aI>eA5!WT8Y(bF$q!!Ixui;tqB0;!tqk4T?>hb_{ zh48iHg~^3+wkOBnsmV7se5~16_j5Y=EK<`GxcW}Hq@<)nzN&H2M%ulM^h_Jsmu7xx z&if7FPKT~x)B+}XluEg#u48+07{WE`8XEP0?OtsS4HSf0S6i!0vIYF?dVl}^ePn32 zrafAJ1v!DvdXvHYj5nmf0f{VP(7?oxRKz4}|#^=@I!RY`3mE!96|3`x})cB#u8? zB(*%WCVJ^7o9du7mn5A}vR-bNOe`!SA&)XMGarVij|4cjBtOD1oIR-mk%WfzHdQ$W zPGApv+jF?G7O+&FWC@T6g$Lebh-&&_07SYimJ^W9zQCO#0{iF~pOFZ-=nu4v`0QaU z*NL7XZnPdc2&%AfB?;vlxo&g6Bj99FHcXcx}&faKE<3 z2`XU?Ll`~4H7>thOc>NjCXL(B+Jw0FIZyw`k(oI-_A6qqv^6?P@XxtONcG;ij>k@D z9}C%8Sx1;QmV07(OH7vQX<*_C-9+w_*jaMeJs{8h+cSK5 zRX3K^+c{itCt?o<%=ez?f(hPYS&+h!p4l2gOy?Xwew%qGz(In8?%2Y^oE)7W6FDc0 zQ(Kd6-6D}nPRCblL|?xiyC#a;$vfLwub|FvTg6P~*xlAmJH5S|*qEFgAv*)@#);bmW!6T&3FY`$gr z?zX(VJZcVFX%nx$j)dHrJ7)kCkje=MvZm&1nFjpdggRfmAolO}ML65X)zgg31gjGu zEF;4{-<4QU1R715%sGcWN0$30g=8y5I`xzD-=T1@gEBj!-Vtj8wg}OWP`AwM>fd|N zed?hlX;Lt%FFZ#0KrlYC)fYtr5=VQ(>e?e zav@Up65#9H)T#e?Z*OG2(|`ZQgdbXv3~9MZ3@*bI3y05*@taTtB+Q6CPQ0jvw?z?a z(Zi#3kBEkc)*%e4AV*A1B4lDhoWaXJ4sUwL(zRWqb6X;Rgi+NxkzZ?+0ldh(PVW z>lka{mz90iv;gXOL|a=0iyC6QfteW%4-XH)fZ-oWATU89p(ZzAAcRCBvVTx{YnCU3 zb}IR^Q&CZ|!%j=_`LY=*x=sMk|5M(x-i#33frY=o@4@s@6U1IZ-r$m_Bqd2X-9ERa z0lA-Im@z~c4W^$83col40dOnWqy9pq)dGVf+!4Y-#268FNFCy9o3URCFmwTdgTOi< zh=gnOa(H;yHfsJwPF}4M5_v?FYNybtCZR;>9`qCPs_1=Gabo4;mr{teL3-MB$DpCnB)% z&rX7W=ujGjDaQYaguaA;9gea>It&xHbIX5()ogaqmb2Pen z-Xw_UDNPvZ+9vMs?#vl-5o?2o>kJMyC)PGP_e>uZP}`(hgG%Bt(X&}x zT%3l6=GGuFrha^c$R`(7FC@=>92hX?)S4e5Gcci0V`C;#4Y`Jy@9^UaXwAIC00p6! zV8j?=M6z>xq~NG1S_CobVB+rD1^JOMJwbY+E3mlY^7HdmigobA3E15)ySuw{ zlo{@%dpEc?Y05>fFk2K)40CR&E_xb5o?%K+pGS4y+RTLI{@MN}`Os{6r}BSZ4OD~_ zLM??~L`6cZlME>5R>(FWL1MBrDuu}3@rsHv5Ze$JNQ`Uk-o5)svp#~k7v651nW-7g z7o6F2GblxJx}|;hPbL~aokBTArYzycj4$ei8NC+gSSFqGpS$!94n9&YrQg{Y8ImDa z*DJ_s7#^yqM!u_UxBZVHzotJcqk9vt?mjGbsAFY5^5cEKrc0vztp|ty_}ALh4tF3+ z^#17?2K;J69<#jwgXY{s?+u>7r7MW}!<~7B3?Nz~Ke87QSx={7|3_r;u&}XFV0w%V zKOJFKevSjGXHt&&w4%Jzyl@*pWnC~9J1q{3P_f5<-~V+%nT`3_~XYRut{PQ6Z>~}`zt@bNN zZQRsP?;pSg@DBfGNQzYHz`-PtlqUnoV(K9IyJ`dOFnMR%7s|Yo#Q}IJC`}a?t zv~D-{)LzEBUjmTMcpA9o%X>Sr6aB~e*(4N)2Zy|Kva+rspMXibin9h3e0k*8{`giC ze&#O9@KX?NX2&jlljNgqu*G1MPqj5H$t48Y4nhaTfL~t8Oe9$hJf^M}m(K7?sC}6o zAcJxhm7}<{7D&t%5W(1#z~%9?0XH%-_^<|rT+gs;&Slg>ABiWYK;=>ss?4`>_y1P( z%_ruv@Ql&ZQ)hklT8D3>vy45oyz+FNKV*?%-_pXeUq;D7p?rBx%@Z*LLJ0EUAwJ($Fn~MZLDD!a*svn@ouSqKIJp~B8e=T z$3bkiM)&)p@@~2stVB>BzO=TR+ceX&A~U1USGViQeW^h8?QDie1gko8aQ=;pVoz9w zyyGPSO>-{0md!pQD?2P!l%5ZaUp+H?Wq$3E#Z<#k%9XX*JxTn{qX#!mDRf)cu~&!8 zPI}uuoXLF{D^%90p!}fMtoKiT6SwM(3&#h?qZKLfpt8xNzE#<37$(R3u50K$VZ&wR zHQ`lOUz#KDgs(%-K|(?g zd9ZBHRwFJF;t4U&ha;s~6}a`wtQ=MYgC0=xbB-qIUg=ZX+_8tjmi9qZX^7d@nLTsA zYU|}|(pZk44)`m+@JMv_{^E|P&f3P6W>K+(_PwPeo9$J4&E<3&oW$#CGz>>DhC~du zEcq+BRnMCu5!m%!?KrXCvcoFBL<*VJ_#Y&!wN+4%BKJ=ic-Np{g1C>LEy;A^gtmCl zuBpdh(+GQescB?sD7jL5}D*b|Z>sIGdIZG3K!SSb4U&`Y*5B+gJ*XW}Sqq zH0=T8D?yij9SdN#d*#WlT%9!ga)lb`ET!7 zP+0ZfMGjcJ5Gm)OF}r@xOi5M%V;0Nk1 zf>T@x4ki};Qo3O44VYTrQs>!k)eIL{7ybYBn>U2;1eE5E-$7a*>wjm^j48>0(xe}m zF-kfJ=ajojLZ+Y=J?%t)h^}K#4FBzl&(oidjLm;|BI}l$Xm_x3!C-l*H|gR1D?h$8 z&sr`pw8i!_-S^v}C!M-IJ23CxMPWv8`T2fRHPe3&#uL9A!LF1VV=LAI6P*B=G=}>c zSvurKX$c}va;uz@3EWs2);j6U{TMw|VR&WNmFG=m*5; zS0%z&Xm2rUBcwPC5Fk&d*|R8);pf+|{6_6I0dx@r_jp(*NVybze*&H~AWxK~??W@<*uPb@k6TCpT1*6MqDwk3ZANGqFnIVUA9lNSSlzf~@7&uzcZOtlp83Q#7bn`d zF>@u~ ziabw?)yfjkF)~Tr&=k@-;Sms{Q`=l~t5aaq;7-%+d-qx~12_BEAEU{;Iq&Cg#Zz>^ zvdYTI>3eTox_2w9@Cbf$i;{Q${=C7*I{}T(4OQK}eR~_`TtFC|tJ!WB6xj^|Mf=KQ zv-(sIS-AQwExs=n)91MUqpNn;mk*=Us|oKWy+^WKi+YvR3m9hh1ifMplwM%#U|e0a zA3yH;-myS!9l+Hs7NyguFd47aeCbo|t?bKJZC0fF5_!}Phz7SCb-cPX zzCGf3x!gS^{;H*cu}hz2&wQztXSJJ)KKt-kqwk`1!5*HSm)v#y=DpwVX!^{h%wpGd ztg62zIG~xMj5GE4AwhQHL?8V-(VntMHhW9}Yh*^N8BPph;;J5IPJV#M-o4=%P|LWY z)l;%rSB>V%(*+8AZ?E&oLRa!3A#M#Ge;GGzk-pacZPp9JI+JqdD*}K27`Jt6ett1# zSe2+8eWr)*>dD+ymjhwj@CKGZd7V}}@ z^rdOZVpe5xu9Yv9uHx(CK^iXi-UU;fxEV$~h66_$ZPi`>tp9@#h8A%MLnYL%&le#? zp8^$({0a%$B=4R**-ei*bs9P=J)8XIjn00$w(F7?qyO~YpJgsLT}N+eoUOlPcJ#;R z7hlPuQmwBBwY+%Gvk~_0OOVR*Wf38rhU4fXPAZ7qX+f;sOdX0CgY3eE|BjhldYHFv z|HJz)@gFo6!#8*3YhL$f#?(?Unx!hLjD0%8YrH}VsodbL->BrUd$-j`#Bb-HkAC8s zmTEpj56tpw9kXBW~(o0)d}^fwD;SK)d(`DjJXY$invWB=EG ziF$v~ZRq-m)5lgR-ahU%D;m1`p!n$<`R`7dw;C_McR6w5vfgATo$gsVzeV1o4W##z z{ilb6WKzW0Z1n<3Gjx|?Uz|C0UcV@i(b@4>=-J+Sno~3tx-&Yz=^k{hw$~;W?6}wx z;KXoOf9fS&WwheXe+>o~d&h!l-G`*wq1W&!=*gg`!iiNLx9^MZU5Xx+e)Rra#D66! zI@MPBvf8)ko!U#?R7ZsVKRkVPRF%*7HJt*N?gj;E>FyQ~P`X39ySp0!k#0m95$P^P zx*MdsLHeEh`L5sVT6f7G%6jfRGiT1(XYYL?Z=x+aDRnQX-nSeeja!FccSA1yoM38c zabZy`kWekAstE1W|L$$~O!mkw?&(MI^XCj}+I3=-1xnd`hZ^Ti_8weK0E&3($yadT z$UcJx4K8LxIkRD-BQ*>~LImIxx8z3@b4jL|uk$5+X)&nQ%+6%E>gTja>+cn%`aXm0 zd;N253i2*-pQNnJ@<&&s{bUP{;2Z2$s~-oHbou{%xKjPOO?S5G*(|!8kZyeD+VVqC zkfO|ZA!))S8{~m0DJd}T-oJlu7iRh2vS$Fxs&f!eKWO^{?*@3s9t>V^C*%C^xv}T5 zor5Cx0EsRF5#Lg$$Z8c_Ik&roa-;*mCd+9fj+bZqT`IwEp{ut-pM`>$=VbRLHKisw zQ%Wj7G+a*!k^JIyMY7}wLJ4e5MKoJ#Bo5px7c3ZPSkO{0$43h*Ncdo*0v=+^a~a&u zo}<9Se5*>VVY* zt~w)N>H#!lvj?>)B|Su32&3HJlh)M~a@$dOWgnM$2`k?aVGFVcZqK4xAnCrPD$slK zKn&#}pnWU;0CCf7<*v086u_8Zf8pA8J1Y*&+etu20c}>#Md`<=zRNH-K%}`&BU4J~ zn3!UWd%~evgNDyIgkegw-IZkl+yR@z7pF_`amR~}p`X^ccdmtNQ2ZE<`!U_pxM8xN{l zJb`AGX*&MhcN)AvU?i0aav`aJ6VTEGN`fL#E*>todMn2tad%z)E7QK`$T%)f=FEO^8P(#0-NjopG;rSLxBpz^0yi#rPpR5Hv?^H~^B zECAS*3BD7cM^kuTAN~SN&mq8uFIe;kzYE-q#69c)%z>IpFdMX{1F9Xn%l2Cn(}b}w zaVvHmpq%DAAi#Y(%n2t>0 z83<}v7<-WD;Ky3hEFHdxlouoAqc9yaI=ng{fxeY8pPlFliLYP&mspi+2}%q{zk_K2 z)_#7zGujs1aywOkBXJINw=hZXr%-WUvim=HLbWi)L_qcmI>_&=GR3IG0O1z^Hz?F7 zVG_{%d0ecwGYGy3cprl93hWwi;`_MuJM}}n-%hrN3_P~NBn{Rv9oKayV+bif%GJVTs>`zI)RKo8N{p$(9Qo2 zSek%M1vGm9ziu85MnnhL2`#`Caz_UMp-WCBp}s8_XhaTXt1W;=4oasMqr)%*&EOC5 z%Ybv?f4{hT4ieQ1@B#2gCX#30?^@>u+b-`bO%y}2_RMYSzozkCx@|YVsC3-#{MAb* zxImTjjuTp8r`!RlcsIx!rz%hosTP{hBau+{7qu<2!ys^s^ibUx5cO?=ck>Zg)eH!6 z7Pk6JHI?RgqvfgnmH~fKk3bJ_1UM7M2b?Ojp$9zj7xd(^zZ&ihm}E*362b3Qjyq^s zY?mcC91yxOxa`73eZF@;jLpX2Gbzsc@2-aWZv6v_UhPIlW3J!T(A9G@21bA2UMr5; zU2gHXbh>>TatGK!uYeG$-4gpZz$%>qZ+jAacaQ*Ym@dfb=;&OYfrW$ac5pntx{kch zsmtdQ&G#_u)#f0q9ANxceUDCN+#T}iM?$jCNax*&dSr^R=ZQ}6$!}3Alj-5s@REO%ycBYJ`c#Coo4NJbVQf_UE?4}+u)t~222f)da&fP+}|jp-`r`o7KJ ziUMMzL?B*S=feb8AUF$2fE5G9C}`~sYfE~87K-?dnOv&d%eU$8b~ZFfl=ql8qpUs! z`~MC5$GW6^TB*%l#iZCBx-Amac8LMfsCbV3S<6?3!B^LmwNDd?X!`p#aC zxGjV7`+JF%^&3b1FYLw=_336HjstGV4hTS^C9bH84dwal=OzVBi*DgJ*ede*rf~;^)r;AkRWYfcsz_2lPJ)plET~O4XdG-N=t=14aR#GBSRH ze*lPR%BiMLz`DX15Ql)bP&$y|0I7o^<3H-((U1m*)f^B6VNL-X5NH8H>=xf<^27m3 z`vrhL;h-|RbI^e2bU)Mzh1f3CM*-&j8}r|I%AoJw959)pIXJ<- zUM)JHHrcizPF=xkRIaTjT$iEjD9h$FNLyeEN*0HJy!D7%vi+_Qj| zp`l|jS7QtV-JnoXKp+6g9H&2MLg9PX=3N?*e{1kCAV-0^^H~e6fWYVpNQK}0SRp9v zK*~?0wpi3EyaQSc(1I8S{00$#;uwKQ04TqNi@?*{Ah7MLu%MVpnNEvia6SVa~_f{Q~#(=0D|30|k4e$xMj z2-yR!N&n<72Rof_g|0T^9vra!R^xq&Z@W|y`Yarbg3sMMWH+tj#@?N|Piro7^jdPq zH&Mw+hc1HMSW5_%7Kcfga)H=vRq!5m>_I?3V7k~INf&*^|MlG}Ntrzfbm!^2=rg#J zIiuNP;)OAyg|O&zNrLjG1XT}JS-VKwgZ|AXWaK*}zITjzZQP2~W{i4-&S-yE$+ADx z*%y%HhJcZe7l5q2Ku!VRk7)OqF|Ih!cL%y!*iMjILH&OmTF;OGbXWuc9~5dnK*@w2 z`eIf>5HMeZ5|~mH0LM;b$ojLeL;|i1pa?MnAWCXKh!bo%V5?iA^+O#2H~7Hveg?vx z!UF-oi|X1qgE<9fX$%zUz~(CH_4ha^Ig&9|(n@dU=TL2XW~kQ!!=GO_#vqaRJA847 z_5Ain>!&uTx!i$BGo zPkzWFRlJ70c~kyXMuye)>-(ip;kOJ9p%>PMr30 zZ$~WnVO-nVnaH2s@u#a^b_nsPEW!l7`eiowtv{yf<4SYtBf1T5+ip?)N4v3LEET(w3(JS$?fZW$vBJDTKj5h`+-b*cs3K9^NMN}<9RI0@voE$8S!dT zB&15RK=}tu2&nti?wg@HV9J95urLrV8Yf() z}?P4H@d!UMjXHly3d0N;X#xB3{~2)xeK9~2wS z#8$-l9}6$j4M_a-{`tW!sJFZZ8{doJw>7dpCfT*GWTYrBv4cuL2&JZ#9zN~E^kYvs z^h%YbMM%+N&AdUH_ofP6tsbv!qwJ71+D+1i$f{GAvAc=KYW83Ry5`eu*6|8T>9~ss zFL>TsDZDU{lJ9ODh7TEQa7X`TQBs*pG+&cp)u-WAn?T z!aR44*pFg+-ebMZgkU@L#o-Ml-NW#X5sBx3K`{S1=IN`y$EymS>mgc9pPh@?h_&(P z_;#>ki>o)9{#Hk*@vi(MpZRUtF<(iRt3e#=s7Q;=W#f>Zt#T}M{J2^DnkwK!7k2!{ z!`Da3>L*Flv+GM)!_oK9qQz(8DT`(1nJ{La}A7b1fYD*+GFJMy5zr z@Y{c=0UHiZB+fwpF(th1@E7LUH5M}Q0(bZn9d5NTS6T4qxLUJ_k>yg{uZrJhzH3z#{LTl4mBi^~X%SalnX49a!%Z7WZ_Wrl71uLU(A45U1sz%yy zP`8oScfAB@C;Eixgw(9j#2WgNY6Q}oN#bRk*;*5V&ZqWQtca+09l_F)NW#d{2o0n9 z<(Tv|Rfy*7?o_{|eNf-sW3g64k%can4AWalM{?59SCj>8=?UL`*wO{mVp=WKP(qFW zrXh_R_@S!Qgr4#f(k#;Po`1#P`ZrhJF<`(+d@;qzG3oCVZFNM8N}LnRN9YGZz6tf76uK!r$e7M{v) z`Lj6TB7yZ3KC_j&)CUKfD)apMw*a~T+yn?(7}V9}a2*=ll+ri4kKtnM=EdR8UPjfv z)CtoHGQ{o82$mQ!wulNVL%r7K5x*f)o}vfTT%1sJ3Awkhu#y8z^$G*9?5^U@!KeZi z!k~-aws@!W0RwfhZd}xt)b2^hY{sCdOjBDHt@ETuI1%e&MM}0O$C+NO*p^{9HAQQc zxl4y1Y4ocL2dH;^ZYR?>9C~y-DQC{v4un2PoGhS@O5YS>Wdyo*&*eU)juj9lO6M0k zR7^E#%rAVW;p{5vp(jU)jU2GGpy3Xxb|@lOwe(@EtHPl>h-8ggETMtoYavpeQrnMG(?w4M ze~PnfAv0r+iIehMnztxY?2&0?Sf34o{I0_qf5}IhqT)Tu4P1!4X3@0M^`S_e?G-$J z6N~CWYs%y)7#0;SXoE6YsfKgX)Y_=%VH2VbgLHfD%<(0A90p%fX@=tCyTnnfVa zN+u+d)5 z_1CdyKWT;hvnmZuhC7f2{bYq(VTv1c{6Jz40xw?i4~8FlX(jl7qd2T^0~jFr=(}sv zQM}xBJ(z;gJ)83%;L#+S)AQ9#&Rwipc(Z%;b>xjsU5$FlJ}N{yx`_;NI&!?RdwDsdKPT#|`^+ZB z|B>ZnQD0Rj3H0M}ULc*_`Yr(^)c0bT7xY*`({Ttegh_oop_w@D-^Ro=(h?~J@0UJ> zWyIlu?iATt`lb$JKnfu(*PJR~M8)OGBzJ#wu-p7ZDqyD_H#mwo#HjcxF=@n%)pgA6 zZh*eVVNGR@!;Ft#7zrmjN|H?Da3YP>D@`fbc&+lCTsNWsy|)~j+gt|u=BsRz)B3!e zTs0IkhFGmfmcJ(fVPed8DT;}>uht(nrP#S#2{(C%I_tW|V6jof-Y;Me7V%|e`;2e5 z#_pXNCwz&FjVblgFw;!=y|g3|T>XIhxUqApcZz(8%ht>5i8B&Ci^BGx8^=h{ui_uQ z(=A%)c9_5{B(}TS(RJsH&8>W)MiK|Dia8rB$7ujuVqks?71VmSfsVmy`#W6D^haAU$0KINyo<Uwhh|`0iJ|A>)#_@_9U&s{=e6I$eQ{gtaQHjEL3BOd|ePr zlDfY>y9$vQYuosRZ4YGO_`MVtE~$0-^$a69@F^lLq%!;J>4YmWPWx3f75F59b8-Hz9sbj-8Gy-w_|!0}nUlje_nn1p7#DgmJe!g33teO#3%p5WP^Z?nj}^18Ob) z;z&EIxiES%g4YsgG}2ch86!Yg(*?Zgv}@Fw7X+tn}Fv!F}3hrS0vKRL6Siu^{uEb zDfcl*FR{0)i&970D36bAF9Ss4UWt4ev+BY2e(~B|(#i_J zwKcPbk^HuN+lW|3%F$WKf~2CxkU2R<026)DP&>~n{UodK|vA^N0$)HWx!#`NEUB)@--(GsVh@6Y@jh?0D2{0*}TxM*yqXH%9qgT@ZaQAM11 zid7yI5NR@q0iG>(#Acl^hS;Zg!7z_)3lbR?DK#}5U|Qf;Y!1ky55NT1z6hHUn%>A8 zze^@e?!CphtfLCDLc!sR3rSOSZ?vX@%Uis2*!}Uh1M*sNSWM<*yHM5Tn~XMU)VWeY zfWmI`M|`LGY0YkrV#RiKFJ=j`EJIVnT1nNfUP!chi!v1tXnrG#krizy+GiL7Qr0>} zn3l%aW)>j`)aIA6{r!KloCV%c=l64ZmZ6SeWCg2jDvp{yoZw11VQ^}J4vQoG46hB(y_0_b$KRR@6uN?46J!{ z+>@7h?Q&k0iaw$y3`|DSLYX%iaI<0EH5eIG{hDb6Fm$_cL7QTORXoBy>N--TaZC_? zd}|zj*26`tF39G#xV-!@a+MXFr9I|jT0kiF>&olBydxuW9*SI*f#jN&F_8&HyJRvY zNqeo3+r!Dk2Kcgr4=pBA@}cO><<#GP$tFoq`El%OXzwJG1dFTT%2gA31hD>1C1h{c zj;^ox9ma+ao(Sdx=U>@Vx66s0R9Mfu-m%JvgjSAK>dO6#^M$OW(E0fozfPK+7(JL! z%w>wbu+oSGfAsJ~9=nhXj&Ui!MH_8Xto5(`_x}+ zwZ;2f&KNmwzx5m`dPL^jaus!03Wu7~$SR^#_&{7;g?)OkNubMDRXsmt=E{ZfIP{#? zaVg|H+MZ#N{GJK}<7XqJ){b+HChY4HzGUFxBwiz=X$A*{BT`Lzb3J{SCXMGS_hsGq(f*Stn>7kBGnXa z1o7NlZ!Ns{~bijbxEI_H=GHtI~m^;UNptcfYF5|YQ+3Zf-Ug=P)`n-(RB%(RqFm1 zDoR3BjZF>4C4y{&)D{7bcmowB zF$Q}$Eo>nf&iqB8YNgJd)cvK{?sQBZco)l6IKj%37;=pgR2sfvPbUG?{#pqY<_kqq zG@KsP+imerJwKDe(!#zp;VKEtS;Y1?UB2!`m85l}w~ZiKRaBzdFmd8F@63FbdEW1c ze5Zv-2QCqu_v{5}3o7=qqX8IF3Db;sqvAXUwKk3BXmu#mDlz2 zzDG#sDCMbZLUDzRzz})@VtxYcTY`qQcZ3+!XZyiw zv&DmDB1HL3n7{5lJ~XzcCZUMiO*h6-C3-*>Pc=G-lZ>SLhTW8mGDyIGBj%@8=vLw+ zT8CSRHYZ{ej#$bF=dv-xeQOOD71AP%VK;0IQ*VU2{rnVjd!;5NE;3T1o~T|ealaRZ zA}Jf%V;;s@zL+odvTyz4p~N3A?2U_rv1qg;34J8c!)bg!9I3N=S6=1%&kqd-dFPn+ zv7O5dBRlmss(K<9w_4+QXVy2r{2_V8WcMA7=A#!APaey=juvP+cx;O&%H`kBm_QJY zo=|w-$Z)j}m%!?1PS?IRi6BidzFKbk+V%1skphe^g~BgLph}>onoF1hW@QWvGD<3j z99#yBK9yb#2E5AGyJ5T8E@@dd!FYr*I(u!s-dheUnyX%Xl7;i?v7PqtrMkGnc3Ig1 ztE7gUt@|4Cxn|<_2eKYC(_CMH>zYsF`pDUuNu)dl#3U2WjuJc*Q?Drv;S4B`ubJxu zI%4ew*}a+VZL_{n=QAi2s&+-1Zl3JNAkmV^wkxdAxiEB8XWWveO!?x#QVW`HNeD|+xiA1DAfE>d5Un=JYr?Q-gsOJzlW0G{Ka4`(i!GA}C*=nK62T z?>+lpqSTLwzXEtOLoXI_M5{3L{pY__%(o;o>(@JObzD=ZpA~@JOAo#?4CcsUDIBzE z3M0E)4%hOp7yjIRT8ER{i{{)i>6Q#%zcYbIP(`DSb?C#qvXKi?Hyx+c6(v=>v zX`hOd|RDDR`OrPe+1ij}3Mcy#v^iSrdv}4+CgE{n7s7_V^kc zU=R@cTFnVBBL--S#`c=_MO_Wq2}k&{*HULU+>fL21SHayKd4y82z%4mD`5G$7=&UR z&{`yWhmrG(X#qZi)@Oq_ZbuXe-U8|0hhk(SqosfMgdwIQw%!2`BI}J(4RJ&XQ}JYW zU-NHe3X>(MoWGy736M51;WBP<{5Y*>JMUn}co5lau#3DQ%=>AV!0BjIO!H+Vs?>PN z7hTAcvWi|@)K*AM;_VA%4a^0mQR)`gzM~o1WRe1gACP+q8B?tMUkuIdvfyuRwN-&1 z^&3&yht0GYdveLFCt|CF$OXvX687qu%JEhIiSw+tX2j@O`)9Y0Vp8p$W6H_a9W+$F zhWwAc*T(N#S5nQ8yYj4$V7Ca#5Wpx^^bj*0xISv-4xoq;^`snd5}S4Mxf&4mKy%$i zq1N^)O$%)}LRD!evgw43xhllO-0rsBcv?IOxfj_<3t+CpN;2F|53k)!*iEaMU{c(c zD7l&1qtO`=Zf;aPQE2Ospe{^ZU>BEAV<&!!`7;X7z+^yt>$LIL5jiJtz7jVhU$cX- z()PMPCuG-Vwg+1$^fdsh3As7{@*V2dB#a$Xl|3KI9)5{>k>rcjD)x5i{dZKh2Vnf@$;Qcs?{aX8`F?)L}4_@Nl7u7~(ilW8^PzFn)%Vv0ov+_Pk{*-WAH0>Kurocp5EO`I4)=NbBHhwz2g##LSk7K|xVKCXi96 zVcIm)GAI0lZ>>X9r1*E_$Y>V<86!@4cJ({cC(8E6G-02csqe3 zot!d1@~TMrzS;g)Ybk=&EuxV5qnSn=3^8~!*;&R{E>0yu-J1itY}#^*Wjqk-B817# zqnXs?Aj!^mH?Q!etvp{7ozdczrq)=2)FXhwWY%vl)mpZ`O+c;j&Hc0=w>=yA+{GZK z1Zm8?YnM)R!&j5k|6{;r>syzt3D*r%X{ zHN1-RXu-zmH!WNSQteriAd`Jq$gLj&?q95IV{4L9K+vOtbh5wjzBv>(k?77p>w6W1 zDdQww%oQt#)0JOtDJwDNoT2wk#!Dyk>LLb0t1SDkEz%LbSZI@wM&$m*<6>%(NkKfi zJCW%HQfxq5s6I|~k;{APF6Xi4(lzBav{H3VD7z>{CcisRRE_V|pK$cq_c{at5@hW` zuuEzY@RVfy$ZvK!nl@Q~Ro0@EOgx~FClAmS_PzfXu^jfWbsKseVYBj1)gJ+5%y`8D zY7&D^!-!-=SVj}`jyLG zee#>0%;HSG;z5b)9<$OXM}^n@sT~ry0>_^fAzkbf>Z2^2ZsbkIxC=4QQobEH;|-jL zqrq;grVa{{`_sAGG2K)PYfq;!R(uw*;vUoTUqRHCM5NspZyBQfPIJCZ*~!R%N7#xc zRnL6%@<-v~>iv7|oJ(_x%^m_ErHy8&a%9326ISzvx7 zk%mWWLIaDGFgw&Jze5w+>9#C45LJh98E4bAQ<`TdSdV5!M4==}2=~*LHPlYAqNcYH zy)`_1JXFUfvThcXy{PJ}l7wr_w>a2nv`U|v8QZkEA86dLQ8$b1BK&-)c`(t?5~ceF zt?%;`q{d_@r?9+kQ?+PEq`0P+2tfgWh#&ja^kb{|!zK?5S-P%EbohkxUTsoY^-L92 zu}us|vXY5%)WG3By_ILTYJ-UK6_>*_t1E+^;d@a*&Ha?SCB|qq)qAZ^pPFxzEH~5U zQo@IVvBhd>tt_m2NlE$|LJ~1s?w?Zpj|7a`Igl$o05M>yDnDTtIcKNw(gz7^XFY07J?W?p)Cp z&OrPI)8Ds5rlNEYffh4~4<3o;$Iw_0b(TZBcuHuJh)OXHAZIek7e}W{n4tVr$d}h% zY4~1*7ac8*VunG^6$-CojdmVwXq4?l;MvMGOhF%AP*3ohNOeHyNGOyym4>{`TCCn# z`gzFW{tp+9N_^=oX$WXmPG0;Fj}xxYS-f{d(q=odKQv|-kn=mnlZHJdCV5;$b}Syc zCKLY{6~{!M0m0K@jS9~zoTYlT2}xt6cakrP6UlsH6An2U)?{q@>n&%m={8Um)4&A3 z(c@vfN^z=zf`-ybYjk4YO4+K!PL2K3MIlvRj@n4&C5KB+M3!FN2&JN`v+QrSShxK3 zYDlbOQBmF?&97?Cnh;8AsYw>6JS)BsWidT3c$peJi}`c8-{C*q8A&BjV#NX-TLxEy z*j=U6aDoTl5;A^6GTp>p!NaZ_YjKw`@MBp&`!p2`XiXUi&@IttMPHFyha{}g_Cvv3 zIZDz~T|R8DOv*vdQ_Yv?i0S7J+6juu3A(gKx#tKK*8TTx)3)rWYKIs2VVohMoWUO& zu%{0PQgMdy5Ju!;Sr0rtu>Lf>Bo3H&x+E;);@@{EWvKjI6(mNxQZAlPXDjbZ5kybD znpV$&fJzYuPfbXz-;nK1z;QcY#H=ItRvB}IUK6s<4I^ZrM<>G`*>23eo#|pUfH}52 z_%>1jnO=>7Xd_vaDzqt9A}12iOc$Yli#zp=kEZF~R4<9KHz{{+rkD_r!{`OD~6)<`^CuHb4`4*$)^pZzT`V!QJAa{0{fhh zFZ(@~Hg!AenJ%BH1D;SBRY$ikR)~pLsOh=x)PVcYjedthQlTm48a#mI6Dk z*ljW}P-UQB%D?{qxBv(e#)P@A)QIZl!sw`X*SH6j-EW=Z#WrueS=YIjToCv>TUvhF&tD#`yz z+Lp+Jx?z@Zc?m+&j`p1fCR!5HDLhYILYOeLLLJ9vjVd-KAm}B%^PXBwMI8waH?A7Z z3tWpamen~)e*sHUd@rX(S98B6$p!QnPWF+Aq{8`PfkVLwR`K`CK9Qv=`OHeC6Kim zzv6(=b+}94*q*MmQ)T?u*I)NH_HzR72F6{RK;T?1{W>1M?Q@^^ z8wv%Bfoh(Oa55Y=YuQzcyTaRe-}6E)r~h`Sas{K@wGCd{+?=^bAIsua-d3`aW&Ih& zz8-a;l0{BW_%FgB{TGWrdw7S8r#)&+Us)2+K^S$kC*y9<1EqxWbQ5dg+qGebG^Hq7 z#2a#5Sjz+aKNO201R4^)&w5yEOb(XFWOX7DDcl>4W_VSEpg%z23wQjZLt1d_eN6=| zG8{r=VhF+K$bY}e8aZlHbJBu{vZ!B4WcCi$e=c+)zwAX=T3rouyOT4stw56kg>ey7 zfyM;~1^;5;tpwYc)D*6T+dr{%ER%gv%Qdat`+c=JG9NRBm`y2HJX`2DCiLOi13#SV zY9+_@QJ0b{f$BLM-nP|~rK^oP%Otb1W2N`0!yInxy1(i&Qy9Y8z8}iqAc*z2jY;!S zOUS*UuR(D}`XqM8H)rVD(6*PQKI%~$=h1-t-H}L2iOPR_bAl@l6V_YWcT)Qz)?OjR>cTk+W0=ViNPYPdW$)p)iz5N52F9BJ^5@Zr~Va znvfwD^Hgn2@T|nRGZU^U#g(kPp2WLcRYODt(IwUkkr5D#h^CQ!Ld7`YBMVyzyPd{y z7S>igaj(a4^V=6=L6%My@$p|}6~nM@p5}|kRpFq{uTo1AnXxv!wFkK^uPbToFK;KR8C$*z zawa{UWQ*B$NIot-F8f~k*s!lW!FGQUZ_ukxD;Q3VsooCI?VM4ZHKnYHBqmVl0C};U zX46dIM19$4c0s+pynjdohd@{uPdu~3XW}p9>*EL<&5;K83i;TvDsZXf#C1P4Y^HRgZC z^QhEHiZ;0_)u=3>F|zqF<8OoCF|(yh`0m{|4FbgC!%*o&dQ@#HYS_96+fRSoPfil3 z;i*w$#Hbussx=M%yd4p~S#f;%<$h^LXkgl&5~GFWS9VSIX2QMEp?UEvq2I3-pI1tK z3$L(0tC25(r@|k>H)yd1eHG@rg4P9N%6R+*$ zxV1Dp=A+>!bshYPLQe8pUUtSeFQx5MUyRLF(D=MhreRKZ)xWt&D6+Ej7S3sZRIPwz z_(pgVjv@Dr@aStZRtB@=CwQv^6$Ts44Pt(z7Xoxj{kp30Pa!v_Gu%{e?^`Ff#PQCd?MK()FmHLf*q@Hx+2}bx>1;A#s@Nmj9%xv%2nbbzG)#br9^i+`G@v69bl-` zh3n->PVPG>D6!n&?QB0MGjV8;j*OIisZEkWXci)MF(QNZa%W6$U&vlmsc(4m!CEjX zK)K&tpP|;FB(IsvEF{!alKl3Qi{mV%j~;g_*LRz4Otq(JQd0+}HiFCIwb}V83*M|b zEb(2}ei4GdPnxlU;*d^zHMzZyChAVO1R=rGo9Gf;RdtJiFpJbD%LuCP zX4$6<$~6Yy}dT;ohs+QS4kpvyhX*TBZ%{3XoH<@p0oTsdgF#Zo2~& zYW#wttf{CLlFc(ZCi2sJ)DQ|*5;3nE5m()7Y2+>x)P$86f%3_m;N+PCBXI*?gxB>uG_Em-g|!hM&pg13Vd_sCcN;h0z<|<`$lC3xbEhhCX_w~t zOz&#k@gNyvqRK9_>vSlBflQO7YO;hHOf|&L{xWbo*c%OtD|v1?x`ZN!75n3q>cLsT zZ-I9U&*@s~+R_G2sEjwl!ESROb{i@rU$e+yMD+?gqEsErS9seY&GPaXzmFfuI2}f| z;?YH!JQ!1~)Eph#GjqP?F7V<)qSs}2UEd=nAHVb#f@hT}ouqBaI6EGcarTNwlUvKw z-LMY#!%STGmB%OL?BzG)vEoj8d|;1I_(eTKk`^U+Odi(eq&bVJ>o4IMN; zvam>(H8mx9L62L*QlTXLbqGQFr4XaUcX4;_Llj5{W*Tfdy)u$0KbM?d&FJdB$>P$B z!%Sn=iDV5R?8g)}{~elf$!GqBmMw!D<2sFd!|K#o+8G8GX$#E1voE7wZ|8$=yJT-p zcqTki(Ooo?3#@jeR~T3~ESrzQ!w+*ELdg2L8nbyt1&19><%&;3M2%AVrR6uqzhjC_ zNuAYOH+=h5X-{a{2)pK zwvXdKpN+k-1f}K{Rt?}neuZ8{#(ew`a&G-9?#iB35si-d-N3EhG4y$L=Zj=l{5r>3UNg~i9taFt=RH4mQHx#C0uByDb zsfTb2!w#?0-vp7Vttj;gOevo)ah;#+{_B1RQBEQ92&T$n&eWFeutaZptw;9N9h;)! zrdnq`$<6Zx(t`e5%}FABv-Q=NVK<_8=?S8Dkz-VX$fTrS-Mon>g=1f2mMu4@Q3b6; zej__>`cF{{$Ypa_~(~tm4=&oak~?6%EYfMVF<((4t@*61bnMQ9BC< z;}x*kuASh>l#br=Vyi$#VBK^N%Crp+p1-YnH|}>VY__o5>iI$XstR{3tPqN#v9P<# za5t18p`WOSARoCCDU4~}g-=9(w9ag87Yk&jB^IpW#I>9_Gm_waLnArviWH4CvoUSP zx<~Mb)@i*rUGN)fVGupchm#gcjSWYayl=#~B##9wQb;6htyrZ3Kapp{k%On~br7h6ro$&OZtuwt**tI@c*i%q?czcLMk+!K}Z zw14>)OAv_UYe~jwj^yg3$`#U&#<}+YxVxwE)gbH1IFG#*oRxgT#$n(z&G_Zay+5e{5P%Ko3!i+c2Rp&_Snh*}jbkZLOL~GMCvf{O z2nB}AEIXbl*)CQdl}1PmfksCzBm5)R-zGEmocofzqU+#08M*}IeUc589#C2wM{nsu2nM#l6B%5O7zj80BYpT9VHIzVgOBD!wYHtq_w^W1d#Ai;M7 zqcPWq;>P@Q;g?~Hdv-)|h%!2dk|fyU8M?F%3Yd%z#W;@U?DDynUAh}0ruUrEB&ywh zeSOSj8rC!9QWuee%!DKy$D!&;+1bN@LIlQW5O}xc46(Mv0@p=cT-=_YtNufPWzYc*ot_NB0JHgKQDAtBjc9R-u7w1B%3FtP!p zq+BrC?e21~2RIrL^Epz%xVgCjk!Bqj>Hh2vou3VSwvpGyWhtdgC$mpQ*eoe{6^_I& z4>TlHIf#mTf+Eub1S^oo;|oKGk`a{bFGZPqNeP0iF%Yu<@p*F%TS^_dV24UmeMl)p zL@4O%4<7g252A+dfY2fK$)@tc`<0Z&?fNS}>Xt^M-FcBvmx=A7AEotv zMyq0K?fWq?Y2}o39(tG;yrHNP0 z`ro{7=I85(jYdr6a~D+hG8~}opO3=cIKIT$sQRIPODYUhqR5+Z7n@;`@j?BtpqeA#+~}X#-qYO;RZ{@#1*r8;a`MEwQ!7wW z0uR${@GdgJ7|zBXcgzU*!f{WD`$J|7tlppA6sM!zrVSo^BWpgrTT+_Z;dLHZ3aYRv zDV_aqI}uAHH>4)TG{mkbYV)V|b7#~A;yr2P+e=xFNVvy{sZH5?`wL_S)}o^N$O*#C z8XRAK)6!v1`?Ruc=D%IXOe_DUj+s0f-x4@MXq+&~C%?l(lvh1%UjBN7_f;sPh#_w> zUk=B!Ezj!fx9Ae9(kqv%s5^R5S@A|l*5S#eOV^iH4N+AZJQkE4$Z)08>HWS2VOXgI z4`Zkvh1B5iI)WZ?tSbZkOzKXaw*i0LA}LA}BiX%@ai~%hwXMPnCEfk93|-}|>RqgNWlL`N4iG&C$ZF!&?G~k;9j5d*h zg&b7z3H5e)is6=41@nntQd0+kVN&0LWf%Gncz zyt-6Bxc->ly*`u}SwKQ;$*;xk?h$vF)DL4zq#82%-qU66tBQyb(3#&eTAf^7_6ucr zMAD91PAP0bX6_T#7ILELbw1b3y~b%|yfAH7BxmtfkFS*#V_1s|BU5$v@{-uiF~{Yx zVBpx;yCr+xWI9z%&4IK^U4}oyCY!r9yDPL5(n*+zZ|L5Cu*1(wG$&4299~&&0k%=a z?d=rheG=7E@4b6_jkrjFVuYMLg9@da|D+XFCQ{I#`oY|H!wsww561Z=xxMR?gu8T8v(w+NRtyxKLDOkK+gq&1J9Aq z)qWo!Xg2N^#K3@w(Z;|4=jjBDqMiWC6)q*I7;B; z9vw4tYC!=SPZU0MZ zLHCcw=$Nl)UT187!~&CS`N%MV3~~<)i&#UKN=ZwrbNz**;op(sSB&h)D|oi+)+;N^ zd3ZiV?6U0E+t-)N*5G1EI!Wk`Xz&LFypVe*#-f*5AMV`F8dB$>VtnNj~|3 zP)#-ih@+uH)t*daQ(*JoaYC5hvg64m1jA3v0uWg3z{#iQLJG zulp1A)}N7^p;ERyq}&v|2eVbiD*hC81&%}69wx$EZW76K0U1|Gd$Z)l2Dx&i;KJaP zhvv1+pYY_;Q>9KTu`M(DpR9Zs9xGB(ZoDZybX{Vj#twQ=zKmh`1^;?(E}c+13U>b1 zUfJz3##_3GXUvzsaYp9qvX+hWTa<;~R*y*hr?gQdH}=_k=4Jm?_<`R#uSJ;(t-ZK2 zbbUSfu??y}gDKca&<~*NrV(>~OiW60(nyd8@$EC;8_4(@x4&liczFLPdAYfNpuHz6 zGq=A3?c^`u=AE9Ne$`fO*sKC;7#_Uh$WW6PR002e{zgx=)Arn4&~xF-%RJtH4Nfh7 zu&CJ-m)?fM@G*!=r6-5q`Dv}cmEZ1&K8cTviY9SbQmM4@#k4;n(J10D1!(=r1!Ld2 z%V)9AR|JIwA60r^(Vbn^6TeTPq$-gm0|(`IwDU~0w!B*(Y&d3fdQO`+uI2Ynxw%8F z2_ks~W^BB%ltZ5a(#7A}Vtupu_T_d-o%!Ay8+|80Cin9F8zhY4rlv0o3p%kfxH5$~ z6MlV-tw!Gwafpe-DkiC|NRsK+r@1gSG}W~~ge`8-v3DxSS@Q8@Dw%16q_gb5x{zj` zVe;an4TXq2c7KAwpX>AQ6O{_fyvqMa)muPywRK;hfPhG+pmc+hih`sdf;5OA2m*pg zNK3bLBcLK3N~d(Egmft&9n#&+TgUtV-gxhh>$umU!1?X7_u6aCHP@WFbU$|o#}u-L zeV4B#j3@N{oKRZbmW}kWlO+62B<_QQ}F$Gh-F zD?A_25-5he#-eJOMaOxW*<;1ohsD2s2zaoD^P*y+?m+!E1>Uq3Rcv;DY4qMlroi-c7MtSYW2bdNuSZ@L9y^Sng*azw zfvMMS_?5!u7iLHOv7dJ+O^wc{*w{ODFSeL{eO)Rp{Nl25GxY{n$oe#VQ3-V2_AO&Y ztbUamj7F6QpS^s*^n-bO%b-_}plER3O0RD@=476Bq}br9P!WHT-P{XIZQ(Du2|`CU z7e?q9=z8~JM=LDu;aPn8=A*$?Z-e_hq%QVhTqvY)_w#jo!{wr%);MtA;^GjDsUs(N zwHC?`>dL+h>ik6LDNzAa_n|C+Oeu0op~WT;ub^3O=KKNGxK+hbtZjT8NxA?@BtuH& zy^@8V+j?p2#6gc6KMpvp#=8i^N8;8gC|B6O$Y04RsG9}l>V@B0mWGfvf^L<4hr7~P z#jdGwSTWCrb6{{wF*`3Wk>=-f2c>8ZO~fZhDLWjTSV$i?uI|s;R3c_v;0b40zJ7MR zdmav|G2I~PfdVEC=wMwgyx{&qeN$l64V#mR&zndlV;6%g_qwj1w_m{q`GVST{EQwy(r0%1(4n)M;Vb@a-zgyTR@` z-kYJ|MNwGr?L$J`a52NKk@LRn*Rs0AJWBVb{t-{bjPDs%1eF-ol@-}RO%p9oA`|EL zNK>mFq(z^}JyIccw%rtW3@6kc;|mJv$jZqvuoUOIe0j#1Jr*kS{b(xV6nkf+LNp3= z?N11*KAw%6O&*U;wNHNcP7JjE!Q58puD}8+zZpeUURmLy?U(XXa*JU z6E9anzekfexdfArH_qkCIk>=yjD#P`3*{Jjf3EfDrlvCE#1u?XHpzb@%d)l|U4;D5- zU=M+Y48Mb4=mT&NK>YT==K-z|$k@2S$Z};0bpP=c29c3?kfk;)-vrgkV;qe-aC?5H zrZ%(f2=RRO+NP>;$}zT5EN9&^g;W%G4k~@2K&7zRSkUAk%arHec$Ru-ZFe!4E5L6Zh^Wj~)s*1W|#3t7UP|ZVX*(f>l)w%!F&ZZnsou zbHSs682BsjKtcgmB3gcm{(&}6)GJoi6Hs;Cu^6vVp8|7&IZ%?BF6!hm0Q*-IVbGTl zKHnS6OBbOw2g@U~@d_eOaG))G)r^S(K{1_VGQ;YNX$eCdzCw2)dh!kVx_f-Kg1T=c zrEi-)As+F1_gVCxYs6-h_eGE&{lH{}3qI1H)I5V1&kb24M6@1ljYy0e&0u2q! zT8K0e?CmB|2%(SSw_u*gqGWE_LK-7`#>&GtbJ>C}Ip|-iDX(=Es(jDfiRZ>1dFr2% zV=b7F=S2jzOK)JTMjJe16YO!JPR~#UJv>l_Sb%W<&-JplZdtI1;~fa_Br4N_L@2Vj z;H&_0u|q2^;AIMe-Y9hs=fRRfv(%JqIcujv!F84wz_`@%r!v* zU4_&aTsri5C=?x&nqI~B&vyp&@fB()lhtlIYZe?DN>SYi?kiz56@Q{vO55}8gJB`& z2@NIg6WL*WDdQtW;GFik-mWUCAsFW(_Z>YZ-RNjFQ_Hlp0?!JiM+OGfcA1nV3o> z&G{6~e)m>2>YS-9YmZrWMbAA&W%@%X?uF&#Qx313GeJWmJ#b3Et1s{)-IP|(_mt1$ zSM6uamyYmtjh5^!`Cc7L6Y;dSZY*Ml)xWnIcp;h$a;1L}-4F;LwkNy+)~xXspuLGG zU1tm~>%Ib^-OmjVr!W>lcQ5g}sbR7-k& zzHewgM}?T^#!p5iVezlK2Wck8*$bzYZ!MVkh$EeM44g{r|HlQG559Zj zy9r|)znR{cQcSMyIZ52``g|L0^v*!ig@o0U5ho#$r+{Q_*32xv|ZvI+gl%t23M;@t0cjMFxZ`m1ELroaHVvwqkE2836MxcHtOwQ zFr(DaP`F}n#BXZVk>GiGoyQQx>OZ_gjeXEA>t8HXg{?4HcopN_&$MVlJvH`@?!^o| zN^p;0pri8~x;W>J>(13FLkXPYpt1S!xSmO-?gr<5%0Q8*LUawbuF*$t-mpNq(QM3@ zntcnrG160WBMU8FF{Lq`czIsvrV#I>{ECn7d9$-yWL+(S?y&m)r@m2tYRmk>23Yoa zU!{qcSiZ2%)i|NvUFb3F_85MuT@vm2&?UM{k`z59}+EG>`(?24Ds{666`cT2bgs>wo|gjGNQ4j- zf=CMdH0_?0{hNfF23kcQIlu%w?o z2Zn2VvPz4y;?XwAHD3I>?lG6H=l8${6nqN;_;rp+d>>z>aQvyqRcS`yd|84U<87CA z=5j#=#&o?7Q|{eGmh~z5SrH|{n1sYM;_f}YT?xCq;Cb$UCYudzJ|h-ZR>?CLc4HDP?n5?Pw|{H;*Giz`^5XOu?2y~RFu6kW%3tlDgvzz; zp?GX+X>4SM?PM*5Z^175Z=>6U}To6Q$uT z4`cajMLzzyuz>iJO{QTGTG;Was3JR?tUH{Qc|W=i6_)MfcccM@C_}`$))L zp+JGBlVPjuMC|e~4Dn zcumS&?J#S7@2<_zCrK%(R3ZIio&S}vDI}GLLfgL`dD1jxj)g;O#vEoxTu!)fnG+<( zX=kq`ELBgx)v)^@623T-ZSfN2wyh+V9}SDJq2jG*byVd&Q~DDgk%PEqnIoQ06ZJjm z_U|T4gznF*5kX6&r|$EtF9^LLZD=Uw_lQ>&l#pw(qm zjqQqGYDbXRQu1=hlk7i#ix?Z8H{4-PV+|MHCzYusK6V=H{YahL0>xps-nXd+aa@}F zA6G4?!Y3@grt~OYhRAJGJPHU6myTo#kz(YZa>sG@PRt#jcoG?s%C=;S{fL`3jJcs} z7-u2k({sspswDPtq1ODNbAGxLP094p$4}!4LTST0Z{_)@S{MhxqbW+}W7J)B3M7B~)=%2gt=40M7M+ zNI@&})L$3Ujz52zM{h$q06 zaTacXwL(tB0uy}C_GpJ6lfN9A*)DMf4XsazZlNa#vhhMbX^<$?0P1jn<)Kc4#Na$4 zWVPVVRd=NSrt1r8-y3G%2|F5=%ks$QTiOq3UbdiGRl08O`;h9!O0PUFbP{nCX0u?Ow62%x@AegO zYS*nHcr`;v6=qf}9-hd@y#F{jZ1v74;d+E&%*T&9Ou`2)_-kSh9~&}rMF)cobSeYm zHEe8&jNz}@w^C+^Lx1D^Kg5nEr zfT)QZJLm1@W!u!@)xf3ScyAw~2qyIK=i}pX7DzYi7u}sHbE#Mq#liRY2FG3a>N9h) z$FF__5P|(_(#ncyydpW|qOVfuDdgX%+?Ifxli7=i)fn`TUK<+DSP3Aap&*8sasH?o ztUf9L)JN5QycHW8JNO4^D^|l!BX*Y8Yem;Wo%HC~cL&<58G~ETTGiJ}ba`q_hlgjo zOn!VZZLv3JLw(n2+-^Q$`H=heZ@KkMMQ+30ju)GQIBA<3tXoyeuZty?x@Trnw}ksY zwZ0rVvd|w-z~ChBj7=}CMyH>ypSI{98F})k`TJ!7Ramn)cXa1tP0dl>7pD~y{>7${ zjDj})p>_F#0g#9bA6oz!$Gn5@piVYtF=s=aXb+*71&~|ot^>}T<%eT>lEG&$_@geg ze(DYk9DxdD7YKQUxlkEJe#@$;wris##a{My)x_akOj&w3*ta=~@wV=Y^c9LwN8&+L z42NF#r95?GSe~3WMjpbZ@f@+W)3}y3Z$r=6$VOZ)4zn!1cPcjBX|-mdFoZ zMqUYdH$uyV$XsW570)(2FvUe)K4;kQ;qPTEEL^7JKG}Qgkq`Hsx3h0?6$CML{%C1) z7}3rcB)WN1*4TJyTTy`!eI{h(!~?a5u6(Q;ypv$Jq=Lsc2r&AAgmVOvhnK#H5p_Gc zF;Q-Hv2*{33zwR5MOk8R?@Tz)cbq?xlH|Gf?1dQxHS(k6-{l0C5)f8i8tM^yl?A`0r zFfSsM_s%i8=PS>(LGqu~P2R|-G2o`2bg6#|CgxX7G?kmCyj;grbCkVw^`}Pdy}NlO z+c~;(K?>-6;}dgwdw9vi;yU|IzMvVDR z#t10yhk%`i{TTHz*^L{^QwyNSj?}3F3%t}KdDdfP=F~JwozJ_798v(E=mhKQaHoyf z^y3U;6ePqA4Gn?*b8~a^`TE%D@hI*c)d94aSPRBCzjNm zE}wvUmlT1Qm8)q~^!QbqrDH{IG{376!Wjg|aKXB}oUVA4FR83ds7ic~MzQ=Ae|)vWceS^4-Q)!R!Tz+R zx6y7782Gd0ZqwTmy08 zc<|RfPErC%#PUh!)d~#e=Xoz$KmoPAqeCKN5Uj~s0hC*ws`rR1%g)}J@uw{UqhWBb zhK2YWDaZBT&867c)|Dx@Luyd^{L=jfq~Kx%?Xth@4!2}=>+G;Bez+qS%`lr>N1ayFP7EPpN#2iS9T6NsHnTMiP3Al~k0>#RzNUAmVi&vVspgFhGJ za~&tcxC^b{Y**U>?6;h%Gme!4NCKKmlLdZd3xP}>o~ zY4}@UZ!f8)_Q|7iV6*--Oq07_9`y22Gqba2;b{#)`I?lRe9peQpASza5-?aFfB$zN zo^1_p8oW&Hy4xt zkj3Tc!SUzkd~w}KgaG%jD|KF4|KHZ(2={}RGgQQ`SqVpnikBZLyT7XJC|+aU3}7bl zEkkz5uJ_>beC^@n95{}f?T^ks0n7(69pTU{@&T3atr3IpS9fCml)S5+0AuLOnQ)IY zMgW%0>*~4gM!|yigQPv!-Bg|*jKQUnT2vH?WXH^MpAqBwh{VK63&ND_>>vywwF1~u)1J)rsVmd2UpQ-jHuN~~PB(EBuB+k!ibKuuLL30z zAQnEO&Mygc0x+lM>=ivV%So1!(*;(~$3zhsSy_DmR3LnbtW9}1-ulcWvt%pi(Tx?} z2H&Y-!a}`3r+d@=P)Nt)+z#6LFDCZbZ{3;&ne9c;joz*2l8F>!lo;fz(J2rcWE2xi zg03Z<3~~L*uL8-3v$(2p34EL{9}gD&;wzZ)TCk#WpnPc~{5j&$cWr)RH=DBqP4cgb0Vy#gH+v^u9K&KCpN;o4ud)zlz84!iM0pvc3! zu>lA~V z0&<`GuolP*25+|H+}y59XE>|?6khy&*7+~j$bkz?n&rRnpnmNS zV3GmPC|}q?KWPI#Fa-if16uuoVPPzMd>_Gf7?MOp%l7<6QX~^>e@Qbl4)|KQ%%GJG zB{EQ@o@!~~G=QcuB6kblI^W|)2jI#(@cN2@{NzE`WOg4YR*!%IVP8!h-qw6^e#*|q zmYkZ3rZ9-~ObTjGZi(pYSLn~TlVp3-$5U-K3f>ewiS(g4{mk@SuSe$B^dyDy!K=ta zyrZK-7F?T};MI;<(0BUypxX*2Tq-t$hA~iNF!f-kT-b{^?=`%>1Df7YXCGdQ>wu{f zbcfcrG{6NNDyo9v;Lg9Z5z;jDA|mG{2{~2=zM(3kjy#jh+HLk3>7h>N&k(d8r zc7JZ$(GkcgKRY{juM#vhHGScEg~mT&O9E&!K(N3u(JC{W3FfYw2D8QOsZ7mU=X=1y z5>?GmY+1KQbj3b%y_9|Vl6txt^<4|ub1Mj{ysz5{0V1`o)c!v*oapJ=T_73(^Tlfd z!*y%MU;BY`36@m6RBU?xQHzA>lp}5FB)LzYUHFeX7Pt!$kNOW~B?YBw@hugod+g$@ zIW)xwgX{$O&C>Ln)w`bKGCTfZWFyjd{!XX8gv1w+H#UG&@?YQW!MlY*SPL#_1i|7w zaNMGU@CTm+?uQ=`mlt*M_X1fHlflZZwN>f@e78%f(8xzW3Bhu17u+069E0=kX1mV99E(s$aCE;0tU34P0&T*@d+R z8G3%GexakiRXuec2Cf9a0}>L71F5^n`1meR83%G)VEtugCL4{*8ZY8lfQE*4=0-+F z77-J(OhB`=?+nWC4TDNz3XYBy9xk;yy&wq>3c?T7)DVlgo0OC$W@huSk*483><>j$TG5}NC+w+m{TCTI1ZsTu6A{DSsEFf7dXrdE^b zysWg7(dQ;QwWuhMY|zU5H(U7h2@`8ix7WCvi!&&?=fv;aP-%M9-_n+hPTRAj=4Gyt zPZ{{PD#DTAqw3+L5ua;iK>B5VOQi`VeR1Ls*T03uc0q7uT!B}5#j-3xpOVaiX8R(TievyyA}9zu5xn};*PEJ~wekYCLCeernoUoEzGH6A3Htd- z;Z7WgST;ytH>}%7#l-xC!uy4r7#Ei!I%8F`1-}o;uGAf9TAw$f9@Mz5oiKS>2?At< zwMed+VKCSldJ!TQ*WC)bXpQX=jQy+od0buh6q@yTtl-4F1E-7~@XWYU=S%{|XHsfv z3*8BFc6Oy6apK;Xyl=WFa@F7F)FA}BYKHdY6c+XdP^Y!=$|!IO zLIIaLC3W@dGcz*?3}P#IzPL4{ssuH{?{r#d4!p<x+Kb;xcDb zHuheIc?z|vh^%v0*l(ond|w`+sU$d^7ZRE)`IDKI)%e#2wT@wjQ`IjvF7A9YgK>2I zVD2|F#0N%JR(~+zggB=JfK6aX$Xa3T@M>C7(ZHoJ50A2Z?R73Tea>(AAf>;x+bf0` zML_KKW|FzsEd9oTPq`4hzyeZ)PP=a~324UCliuc6`gOT~H;xH923>!rLzia_DV(yX0p z9gxWr0F@3h^)KBE_~j59VfPN`wq>WJya)d-piqc$Xf5cf$wxAQ&%%U-XG(IiXLk0j z%Uw8Amv@p7zzoFJp~B{&!1d(DDgw(BNW#x=`@grWYJ>3M(6x(?gEN=vetuS33c*px zVS{v#Pcb6HnD(!Om|ywG^AFGPvA@j}7i77eGHPo%cny1-m8Ncf^4X4b|Kg_|Qm2Gn zm1$A8ei+?fp~p*B?-Y4ucuKl?@lsq!|C6Abjqrr%F)i9g#Wl|=ez9){o3!>9fwQM) zG&gR@fEBqI_M%*|?Mn6 zYXHT87f1#qgYofHuQfqYQq&w%oYa&Q)Qmxy#*`|O>1r)18k#W0;gh-4>};rwJZf`4mqFX` z*Upmk;Ii$A*?nA0@5?Y-0|Q2j^06c`)Vh$TP}-=fs`|UJ2T1@$?|N{H2YGc?*0t!) zzXbMJtZk~A3di2P(|MxWacx>U7)2o_${tFqv)qBY~G#Y@o*3!Y#gaNZ7 ziXVQN8iM3an>jg<#d~400Ad4mI-mW}Wnao8rHWcBi+)y(GjgB5mZYj@;RnO-$$bWa z6(=s>VG`@N9*`?rJ{H^*a}EJzWBQLD4*u|D1Co##ce zZe2YwGz=0v)mpXrY_d6?(oj;uwRZ7>Xx&7{Qf!ARM9LtpAcJfbc&_UP`3qv922Q|9KciT80ZK2y zmPEK0K&uS_mK6}iM=Ia3e*ga6{3Jgw52@|)bijyrZp^aY5YPsrvvKqpZMt+5=(0uP z)rmD27Hp7_`$%N`YtQIrXP-RZMw`M=gn#02E*NDZe*m>PGwb+o&LA|W%3{4<=;$cA zyI=5z--U<=1}mimi)IL5POV;0CU=FlkggkgiO%i7OsyFi_o_b>;qjT)c< zA;P!gHl3UZ_Z{p?3MQ7xf&IHxPaftvQp=`{;88`xzuS!! z;Dk%mD`zc-FR&k2AkgMBXHW3lMe69wXVS zr=OStAz&hwknkSl0!Pul`WOl#upU#$VP`%Ze;1y4 zV;jdY$28OBbgr3uY2T;rn0TQ-qi(>LN{{|^Ym`sT87Z3}mE7~E=d-JMtuMB^Se2U| zZLi%19{2CFgPzY)i~`c8gn%q*#3_TKt*%I_8)K)^Dy{2 zr)jxoI$eCYmRi<;7{^m+Ob5`J%4?^~051bdd)!*%_CT=k;}<_O;E{STAf-hAn&`Iyz(g9@)cBACOQIm@J)}X4QGE*Pr%9o(n_BUF$2hy|ieFmt6 z5l3AF*n)gwZ(|}3a{S-O1=7aIyILZGMCE z;4h=sx(m1ciO!lfGo7{zhH8bb?vg#?+1t)*(66&+s`BV*iPC*Cw>YKevbAy72AB0M z1fFr&@(?@`$H2=|7U1k#&$XiV0mcFzt2A&(tn9%mnF}BW4sft}4MMxZ;H8*nn(PV| zeiz%|ZKi=@Q89xFM(`L%MJ&KXtRM`~1J)Z_o5fWOhxH$X);45ywWT`v`Q%y7P27yI zX|*YUz`#G{dKZR*j9};S-M>G(?T8e^VE$$R(+5Vc>){Ij*BRiiKgI)c8K7?p3V84u zAmQBoc7lzE_ZMm)(3k?Pmr`s1HkxOkvJ3#*>CYUR0~_`c5fPAoc_2R4`a!MS(;9n> ze^MBdBY*mwAJ&U}J;kB$;Or?Cn>pI3e zD=W*!ZX(jc3p^9ViWDI*>YfhQU$lTm_dkCd5&f(Qz*iGpcVrNIAZVCwc$~u?*%yQU z@hU0>zXcVHtdOE~MsqJBJvP%Utfu29$li+z2o{<#BLt+73zvw92)P}eME(GH9RRM#*yaSmM~8HG zEKh{K^D?P+7e6Ys<7CSvC%c+e`p#XRc|g|!P?ZTWUK2fj+2~31yek;Bc!Mjrsj4C% z=-OkV?JH!Y*CHi}0#oPd@l4R7s;gJrJ)Svq^WBxFyM4Gn6SJ|RRo;_#%jhItaPf=} z$`$aYgQ2#kSFS=$HHVZmVDkPN+@!!9G5SxZ1lIepbryE^Km>C|y@Kh(=E8PM@uG>W zXSMyk8*jGSgY~u$mo=^(@`4|Sr}jJbI+8y=MWfiOOSSGs@f?1eIk&sL@dmFmW_fS$ zn+!>n{dx!Z4JQnwBhI*z%f5tOaTZm9NGA_ys7MXtzZV8}de;F2hN7?7ZdKj=Y+KrB z3gNE;@B7NZYdm=FnB_5`k~s{H7qN7)Ri*uG%y z%yvsQLD0_eWH|#F`v8AJeb|~*4{UzOa5_|K!zBwSMAN6|IzPcwUIXU6W?sF5mZ@K1 zArBHJq0U9(0$jW$uw}XoV$*+u7jY{TeZ5eZHw>i7jlyP!!MP{wL=s4f2|sHIeh$pY z7=m+M+CkWdr%%f*Ua~00w z;kRXMq{v%2no~`aB}06iF>xsxl*G<|fN7h6^B&u0Ln3Nw1-R~zMdan>g$ATQ0R2J* zFS*DWrNeAxg<&@JF_2)XKLs0r*C&vw;Mxqmc~5`5!WzN<0LMnA#9T#bVZLN2Pb(T` z8=qF&n#Lx%8ABju>04xPsD;drYuv;E9 zC*7x*IXumJQEHl%)Y95I0EU6cbR6q!z156_w1g=*oC1&JGu(FZye`4~k%D9Y@A@;O zG2OWn30T?}$N~fvl?zE3ml}p)y?`rzl?@yF=-mAR^tfjaPXRhJ#AHBjOvD8cpGLSH z%rBguOS;T{TCA!o1VFetyvgSnP#KKB3@Lf%K%NB>oTkD_Q|OTB&7LgPR%;Dvebl;%^H> ziify-Lk$WER4bCmK&{;7bBzRv7yz8%08^TYmlts>1g4Dq;-!efAcA&@U7p>oKR<}O zy9kjWQ#B)OcXDx1AU4;~ zzQ64ScPKof=*be}o8CkP zKwKbXq(PRd?KtE6g#D4M5@%=A=3z1TC%B(%OSg&VJWaz^xXI6TH4z=@hVS@~e0n{RBBJ|gv&z(^GEbU9};11;-yvu&%PIf%S#ptmdestf`PBiD_ zw;1o!NR)Qxea@XXy{ryzBFxe&U1+6Sg{6P->j+1rC0vJ1M{)NJF2Y$y0jQP-04u~= z4}pAa{&vi5oI+biB}bjJHJooM+7?PoB;J{qJT*v z$zpMGQ0sSuKG3rY4U&ZY)#2x^^w=%5xb#W}0mma^QW-nSf4iyWxp9lk$L_BT7Z5Z6 z#sOYa{tQexSvWaE zVYv}FJo{PJQxh#x!{VyOonrH*q@aVbszh^=3&PCPjiJ^hJe%Xo&dOK4RpJgpovEt@0oS3=kZVw@g5A@rA+X5+OhMxo?h6%|*tRJSA@#t&bt-hOJ*|C2W2J-1 z2rzCo^~jJj=(OHDh?9=9)LXL zmWZz)jLMpmm7IocZz9NjxraXkrvCvz-N{;)M+-{8{)8dGfikuZsRzCp*Z-2Lq4@UKIBGBLb429*f zGn1KUZ!CgG3*>r+G%fPI4ZGfu*$B_4x@W6T{xS>Ht-TyN-AHuOBHfVD`_lT=P$9AUYO zID|iZ67!=+zdKHm6v!jdTra7r5z}^vBG}VII*IIB|8hm;_#}ckNM(>~2G}UjSph$IRQ`kjrtqXa6io)T# za{D&rY9Enn{bsV&I!jHQyTie|a$||{uMV>&@AMUoCOQe3LQ_MHuHb|MK02n&+}zJGHv#8umk@fd`s002eeRy?$; zdsYF3J98HUKFqr^Xbc%4uHnoFLezG_Y3vs9od5f5FM9S_9H9hA14tYBCXnPp7?BYd zM}_sCm%N+ip`Fdk!UVG_HpXdH|Qgo?aO9Ke*XP3D;LXm_G}s^+Rt`6xfQQ; zsy^O+qfl!4tBD5}0(OEq;9&N;@*m7Vpggl>`=U9p>DCk>*b312je zQ>KT~F$;3hC)ZlDY>dfRr8N9;GINEMk8Fj?kvyOKa59rQiW$@KC&NC$>_d zH(Lx`vvSaDfkIsCoI5xpx*j_8P9*;zK7J~PZt*b4|XLY+v*8i z3gwTJPyqh~P&@{@Azaa&qZd6wn>-fd0?-wg?dne!_x`Yh_!}qYzg(}fg46TqmYQN# z_owfV|ELvm}@w>$r;huPlVm=mFFwuJbxrxKIW3ZqWy zYyZ8KUFov~cP>`~Wy71S4{dGv%>R_IJH)@D;IkP20=$Z7p)$CPGnz_N^@C@}8y0t8 z#j@xb{f*DDF$PLU#+&Zgp3_--7vV%~L$-63-`Vg@gTz?2&ACO#Sm1vR+BJ%o%;J&- zIx{WLupcu6_d*X|R9F0iC@A`(K7F!#5r$kzur03<5EwyA^V4KKwA6q*?{g+(yF~ce zFoF0q3<^~!FEiD0u0znaOU;7x)@ltrMlQ8dDi!VX{=JWQ{Gdcq*=HLcV86w`0I%wl zOgeboY48h(X#?pBl=-y>FMxL;rL9c`haKRA`4Z}}#a%V$q(x}S-@Iq)bC#o?cN5?s z+m)d}-~q&cQ~<{QYe?HrV3I5K8S@vC@28Rn|Eh!8XY`&D*J9Eie`fxZAAAdb(nQpwSp^i{@*H$HHe@ z&5BA_UJl>jGbRMYUUJwDs?;91$YA}&IzQ7S!F_1cM(t1t6%h-N@&I$jYJm2hq5uUE z5NS+JZvn*c4WehpfcC!~+d~&AVRBiMCxz=Ulqs>BY4y-Slwd(3MDF`Ygl>b7iL|4+ zE{int4@|}z$a~5py+x6t{IMAvr038XU~*ZbP!AQh#O-%U&?bau?SSkVta#Jl?nRPS zV2#`;AA6~P1_)pWOiQ#OY)`N>hJ`vhznJSu`t+#<2&9_j7Szawga<=L1>irQ1Vx#d zeSx-!(g*MUPq`&QLjJp%Cd$0<-;9Kz}_=+Py1`60(i2%IA1XIdL zhQD7zAiVX^HxXa$e|t=n>4|uaT+uhRD>o%2^^O&IP)*(!ib-oI%BSYfywOfzYGr<& zvHr*0toJad$_PHL04lN**}QXeIRF}+t)UgNH>-Rf0I{0ac1hWO0}7*4Xbhly;WHry zP@f%85gXA{2=Xu=$oAmDgPt;odRrB{+(7qBdE^iMsCN6ZZ@->K9@Bd z&K4*>Q+cNF(F=mK0NE4vpLduO^zGEkOtC2RWci4eu<6O3wl48uUo0f13qCPEeMGP{W?yK(2$yq;4i zn*o};F&htQeJmg~PZzm4I9|gXv?5(95SY z-zm~p0!fLpnE2uJq&9*0uY?LFKrz-jIP}mPVSjf95Wwad2@OpTz`jr9rM|iv>aFEw;yLfAEkkii=x+;EDnR*5kS$~0;1%V z!lWHY5G#JT?=E!D#lFpd1)zr6NFk~x;HI8{SyiWI%zn#SdqF1K_*dh-tZ`N+|8SjQz4esMC9d_7vF z^Ls@IF>athAKnf!41t&$cHK+3b*uXKZUQX%;CBOQm_AW4ebY#*)@TSb+N{D#%8eMx z*jx~Ym_B?v<@Ea%lC1DrzNLshXg!#ej#<)arsGlaqwZ|Xa9zw8-}k)8QD-9u??kqa zWGIY!-m)8Jg}GaMDVd|Tjp8Gz-{L;tX`X!z;*Xzcd7YvnsTP8%L3djyhR9R3NF^Rl zdo*B$Ht*hPmKYPkg@>`m5ekiq;_eKVmS|LDD-yLDnGKp0TS zBzclNmBNq`iuUvF6$2TpsEiT=NlgOr4wr|i0@azTUzIM&*TPh#R)|A z2vL$eE*>ZeZ%bCTiE1LB=SJFeDycSv?&U}1k=I{g_P?5$#(Vwn^Jz5`q1^}KS?rX} z6weN+X-1qatg3Iu9AotCTvwe_vCu_3nWijLuc&{2z^rF{lZfle`-Uco%+?qqGIr); zcbvgH5f4L7yY}XvvR$56;d21)-XL`YsWxB^x!Xf+dzf2!Qy@p+3omY(WLNS zInSdhh9P<)#K4Apf9~+v#t1;mc3UYepXuLw47{pdrmXtkXe_N(+)*@`7pqdvAXp#xeQ$8^{(*puT8X zZY<*9sw$-B4yz2t5IgINn!9}DlfvkWO~Ovv1`ZaaK{g1-9Kp%;9CkOMDy?CSh>2d#P*^z ziqli&!MQSToWH~r1~O0BJSY7d1z8A*e%v;B`iOPdlF0H|-8&z24tDk}ryDkgmK#*} zKWwaXvGL}M+i*I+90_Z)pzdi5krzGL(b91<5)@KBBqS$#|1*n|Oyy(vFkhBt8uo66 z;zKNP|LY3I+8OtU&(}94Z&s}^q$*Qg{TB)TG1x!{1EHRMNe}!OxmkA_2EVvoYrlF$ z4~T`)e0ziv!Rqv`<`%<-~nuc8dbfk>P8KfP zG(>J;AG-pu7*N>zwOc0Dn^@SHp@%|A+r~{RpW^-$ujc(GRS!LyCP7O%bL$VQ-a_$l zhvw3=^_D>SF9)LAGejB#Pc?~+KGaBXlb5{>B}8Lq7OhV@;EV->ZWcayCsU?;vLG?a z?DuIBDyYyzxuKq~ErWD>_yR%#15+R*4drT*6sit`G-L~LH^$uTtRom8%b^pnD8$0f zW`ye1wye~A>@$>2-=AqA`6<)_(i$2XfxS2RjHf@^7{6G)bZKjA8_a(xgaE71B&Uod z+Ftq^?)R-$T2gZB2Z<67;2TC-PHB`7U>-P3I-68K)uJRbBG^)cj6xRq?AH+ZEPd4Mj{F z4O3dG9UmIJ2+=wtpRo7az9&Q*EIB$fIJ{%I!X*E&z)DrIg`J+zr%)IB8!1KAb;p$) zFA40HZRHraL@}28Qm)8-<`9?t34N52(zoPxD?{ulxGAfGpwGsJq)?D2yh4!LELDF< zN271jfwT(}3}8Z{(0WeFbSP6C4kv0n4NhB_2TV^OnD_s$4r2mfC*HbOcsC?!Us=VX z{@fl(^bv9!bh1qTlw?Icy+nqDUzKSDsHn?cXKs`0+Ge z@Cy;qOJgI+qp&CZ?mmjmyWJ;3@r{Y+SGVMX zGXt=0vJA7(i()nx5u}@x-E}otJm~tecgIb7T+U3A0?nnGu*t$rJfhh()Op9@LqdJK3jZjGfhme}luD#c3T{m1ODl%})Rc@4s( zjTuHyYjf9GITq=k%xAug z1wOr8J@$dvY4=~sC>*x=95YUhc!|gwy{iMA;nqg%sNy%N?iXsBch2!1&f1ewpvQWu zDAhIPT9VuF3AN#0r;9MI&=yo!`SmyEbo1NPhs9xX=ubFo<3Qaa12*ajVMFo5IT4R%okPT&U6{ngjcw#<=m7Loz1H zh6-s|LR%n@!%r%OsWZRTw~GFAYrocYh517>TD)S8BizIU!)aS}28V}OWhAOU&q#X9 zrzrae@fcF*t*pi-CwGqtjSJR`Wu%7M7MrYl+G$3^JwzRKO&pw4+4J%HKViXwgPhHVfvy;@#5x8zI(DFq9T}(*4BzW=WTV$0Bm^ zgKOqNfGLVhhf*eo+vWCPbhF(OIkWPEOG}p3#lV7am2tQ2vX`FN;xfG1-g^T_gbNz2 zj}zr(H0Og;+|n1;>cuVY#$~=%-6?#~=>6<$Z(a?lX0ajs&eVeZb{2Q@P1ZJ5px>}kl-mV8;jVl7jAri`i6$j-X_#)_eM509P14kevJ#d&&FBgv&cbzE`C6clV$VqIoMVtjCZl>8X~_qg+tE2A)Fxm}uzvEnTZ+=U#~ z4H51!Vf^?pb7lF?-u$0#Y8(G(Mh2`;!?liv>(+Zz6f@ijn1Uu&4)2(qT3!l9V7}U; zlXU*>h1&dlVAAupH)e;^bs}5#GMb7IT8<2_pvCi8}#@prn#RRo*=TSH`7MuA9Gde2iWnE_e4PuWF;QiE;1 z>anh^oW7aK;;6`yNfiEPD~Z7#ep3Wk8ijZ7)3mzX7kDe>Nf}J%MY?>4P{6gerSYlK zP`QRty&EYp58>am>cdX%DXUy>@2}x^qxjE%6>SzfNOze`mpRUfI}!Pqi^g0OT!^{^ z2~B(=D63JTAK>D$oX%`NTdYqeCZ>pDe?#K^L%n*?<7Ba~yK$kjOmgDm zYZFqcqeCW^Hqm^;Y)PiP?x*)jY-~koc*`+`0N|%Hd}5t4?4Ndc%3$?O#ZQe!k%A*YIZ0(Rm;7}Q!&@Lc;9bdiR6H915ioqs){j#2xZ5T3wOR+1BpCZp<7VG#T@`*{uTNz!S zm1ZcaC{MRjM<5NMFvP^gbP91tsFUpdn^wm*C1$@zNoMzxh%Dg!hG<08=)TQ(x{X+F zdN-y;ppxec)(=vcYWhLQC-c6vq}M^R<^_aknq#G>hSGdKii%WkW&hHveXJJTo4g_3 z!WsUh&30em<4;H~<2;D|TR2k7Tl?T8a7QdqBc3``VpaXE<+)m)y99Ll;*w9~?^Zqb z;@O+VV1H&XTju!n+8aA3N5$=_aU`u-EK}buBd=_M0%kJNs&}NSn(;W#G!fb@0-Tp= zA%!+uZmly-UYL>Sk*D10fA|PFWv&Y*x?#_3vCd9DEXnPiMW`M6OH+;RI;I={wL8w# z(*<8I1LI`fPR;|{B(Kq>cqnR!qz#z=?KCsDj>v`E(cUZsscBoP16ldB;rT@s; zDK69|ju;yl7+TE_mfp^g*pwFwOuf`))~Lq0WYiTM*-#W1D)?6|+AFp_jylKH?*YJtQ*?gN`H)dlTAwuGbOOYDVxs z0diB#3@9eEtCw_)VD75U)`SNApHa;3i{I+iN1m}W?3a}9NO5|<=x1vRY`pQep&xI@_+35y;OZkTiPK^>9V+f}d3Pz{XOhcN zP&bH#3XX)XZ4b^h?zC@+ylPr4e^`&IdC7W2@!tQ6#d}ZP=AS4owkRGBSNdfALW$#5 z3$ps|fnTKg^~u4;SEHs3RF&~qEW!$tS=^>)n@G7+T5i8YG;qzP9A;dossjG~q$bZz zlKk3zUFNZi7umU3o@nCjK4ddmC&`^?JX!sxPcZpgtx-vcRF&nI3JUgb$8&fsRHq~^rVt{2<9rjYWyNc`aPW14zfSmPg^*n|N z&UK%{pK>?K{@1S>^>dZC!%he{_%zi}i%R(Elx_D*!j~-NmWx^Fk>;-g|7v_Pd>1o! z8TjPU>o1@`>(i5NCChX%OjCLtRKEW#_%6qbLHeRjftdzNNN*s$GaYfuzNt%9+aI>P z+BbR6r53OJw|V{NwduEZL4A5GGQ6-y`*V~9Q|d)S$ z!V&eK)0A8(TuvFyTe*jsI@3j;9ht#MjV#=Kdf`uf4_ z5856@Urk@Les`zFSWEGca!1qCY?HHtjgN{^etf1F%Tb|I`xP#u&O)_$33y_SS$3)E z26FM7H=kcAM5|#XzpKXzNz4nj`JA_ZI2e4>+o>K>Be zx`e+>5wqXz({dN$wO0=?hGBfj0)|-_R>5CX(l)P2$^!p){_yg71w*Qs1 zVsrP-5-y+1HyxR4YaT&XEz7ZW=@gxnaiQNosx=qmTLmxjlzO7FJ=#n2$%(0dEr$n7 zZPAR@aka_F&POeL8SS`MmRGbbthx8jbq440^DBIpPsc)c-|p_4HrBl#jkPoKy<*wL znCslH3W&wURX~w+cc*q8G7CKUHftJa^%M=IBjtn3OvdRZRvUVxD*bEvf`BN(68%XI zhW`A^1IoFxY2BXQzTzT=_j$U(0zP+K+NF|AFwCgast!Bfh#r3K5!Gzr|F|-m$T9KX z`Q%Gkv^0iyXx|4SgQ9owGxdkxotpN1>-FM(NTgcC8*Gn!su6$MWN066rxrAy8fTZ2 z$-fjql-swf)$w`swn!QgZRF58j;*XAq}*;(e>%hn>PPKUGxOC~7sAy>2N-3z@YIb} zxwyFIS~LS62n9Fa@Kao$#!Gh~bwp(0>!?<1b1#j_-}^*~AIco}<^1{pN{%0DEUoWS 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 literal 0 HcmV?d00001 diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 2d8b9e99..28c7ad66 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -1,7 +1,9 @@ import { Construct } from "constructs"; import * as blueprints from '@aws-quickstart/eks-blueprints'; import {K8S_VERSIONS_DEV, MultiClusterOptions} from "./multi-cluster-options"; +import {CapacityType, KubernetesVersion} from "aws-cdk-lib/aws-eks"; import {NodegroupAmiType} from "aws-cdk-lib/aws-eks"; +import * as eks from "aws-cdk-lib/aws-eks"; import * as ec2 from "aws-cdk-lib/aws-ec2"; import ManagementClusterBuilder from "./management-cluster-builder"; import {ProviderMgmtRoleTeam} from "./custom-addons/mgmt-role-teams"; @@ -10,8 +12,39 @@ import {IRole} from "aws-cdk-lib/aws-iam"; import * as iam from 'aws-cdk-lib/aws-iam'; import {ManagedNodeGroup} from "@aws-quickstart/eks-blueprints/dist/cluster-providers/types"; +const account = process.env.CDK_DEFAULT_ACCOUNT ?? ""; +//const region = process.env.CDK_DEFAULT_REGION ?? "us-east-1"; +const region = process.env.CDK_DEFAULT_REGION!; +const minSize = parseInt(process.env.NODEGROUP_MIN ?? "1"); +const maxSize = parseInt(process.env.NODEGROUP_MAX ?? "3"); +const desiredSize = parseInt(process.env.NODEGROUP_DESIRED ?? "1"); +const gitHubSecret = process.env.GITHUB_SECRET ?? "cdk_blueprints_github_secret"; + +const props : MultiClusterOptions = { + account, + region, + minSize, + maxSize, + desiredSize, + gitHubSecret, + nodeGroupCapacityType: CapacityType.ON_DEMAND, + k8sVersions: K8S_VERSIONS_DEV // K8S_VERSIONS_PROD for full deploy +}; + + +const mngProps: blueprints.MngClusterProviderProps = { + version: KubernetesVersion.V1_28, + instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE2)], + amiType: eks.NodegroupAmiType.AL2_X86_64, + desiredSize: 2, + maxSize: 3, +}; + +console.info("Running CDK with id: crossplane-argocd-gitops" ); +console.info("Running CDK with: " + JSON.stringify(props)); + export default class MultiClusterPipelineConstruct { - async buildAsync(scope: Construct, id: string, props: MultiClusterOptions, mngProps: blueprints.MngClusterProviderProps) { + async buildAsync(scope: Construct, id: string) { const k8sVersions = props.k8sVersions ?? K8S_VERSIONS_DEV; const region :string = props.region; const account : string = props.account; From ffe06081a317508c54174acd2f569949142782ce Mon Sep 17 00:00:00 2001 From: jalawala Date: Tue, 25 Jun 2024 12:26:55 +0530 Subject: [PATCH 06/43] fixing review comments --- ...-gitops.md => crossplane-argocd-gitops.md} | 5 +- .../common/construct-utils.ts | 48 ------------------- .../crossplane-k8s-provider-addon.ts | 9 +++- .../management-cluster-builder.ts | 4 +- .../multi-cluster-pipeline.ts | 17 ++----- 5 files changed, 17 insertions(+), 66 deletions(-) rename docs/patterns/{crosplane-argocd-gitops.md => crossplane-argocd-gitops.md} (95%) delete mode 100644 lib/crossplane-argocd-gitops/common/construct-utils.ts diff --git a/docs/patterns/crosplane-argocd-gitops.md b/docs/patterns/crossplane-argocd-gitops.md similarity index 95% rename from docs/patterns/crosplane-argocd-gitops.md rename to docs/patterns/crossplane-argocd-gitops.md index 381cfaf3..b31e0e72 100644 --- a/docs/patterns/crosplane-argocd-gitops.md +++ b/docs/patterns/crossplane-argocd-gitops.md @@ -1,9 +1,10 @@ -# GitOps based Multi Cluster Addon and Apps Managament using Crossplane and ArgoCD +# GitOps based Multi-cluster Addon and Apps Management using Crossplane and ArgoCD ## Objective -The objective of this pattern is to provide GitOps based lifecycle management of Amazon EKS Addons, Kubernetes Applications and Helm charts across various workload clusters using ArgoCD and Crossplane deployed in a Management Cluster. This helps platform and application teams to simplify the process of deploying Addos and Apps from a central Management Cluster. In this Solution, we use CDK to deploy AWS CodePipeline which monitors this platform repo and deploy the Management and Workload Clusters using CDK EKS Blueprints. +The objective of this pattern is to provide centralized management of Amazon EKS Addons, Kubernetes Applications and Helm charts in workload clusters. This approach consists of a Management Cluster and multiple workload clusters. The Management Cluster is created with ArgoCD and Crossplane Addons. The platform team creates Crossplane Manifest files for Amazon EKS Addons/Kubernetes Applications/Helm charts and pushes them to the GitOps Repo. The ArgoCD Application Controller in the Management Cluster reconcils these Crossplane Manifests and deploy them into Management Cluster. The Crossplane Controller in the Management Cluster deploys the Amazon EKS Addons/Kubernetes Applications/Helm charts into the Workload Clusters. +This helps platform teams to simplify the process of deploying Addos and Apps from a central Management Cluster. In this Solution, we use CDK to deploy AWS CodePipeline which monitors this platform repo and deploy the Management and Workload Clusters using CDK EKS Blueprints. ## Architecture diff --git a/lib/crossplane-argocd-gitops/common/construct-utils.ts b/lib/crossplane-argocd-gitops/common/construct-utils.ts deleted file mode 100644 index 9aa760aa..00000000 --- a/lib/crossplane-argocd-gitops/common/construct-utils.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { utils } from "@aws-quickstart/eks-blueprints"; -import { HelmAddOn } from '@aws-quickstart/eks-blueprints'; -import * as cdk from 'aws-cdk-lib'; - -export const logger = utils.logger; - -export function errorHandler(app: cdk.App, message: string, error?: Error) { - logger.info(message); - if(error){ - logger.error(error.name, error.message, error.stack); - } - new EmptyStack(app); -} - -export function configureApp(logLevel? : number): cdk.App { - logger.settings.minLevel = logLevel ?? 2; // debug., 3 info - logger.settings.hideLogPositionForProduction = true; - utils.userLog.info("=== Run make compile before each run, if any code modification was made. === \n\n"); - - const account = process.env.CDK_DEFAULT_ACCOUNT!; - const region = process.env.CDK_DEFAULT_REGION!; - - HelmAddOn.validateHelmVersions = true; - - return new cdk.App({context: { account, region }}); -} - -export async function prevalidateSecrets(pattern: string, region?: string, ...secrets: string[]) { - for(const secret of secrets) { - try { - await utils.validateSecret(secret, region ?? process.env.CDK_DEFAULT_REGION!); - } - catch(error) { - throw new Error(`${secret} secret must be setup for the ${pattern} pattern to work`); - } - } -} - -export class EmptyStack extends cdk.Stack { - constructor(scope: cdk.App, ...message: string[]) { - super(scope, "empty-error-stack"); - if(message) { - message.forEach(m => logger.info(m)); - } - } -} - - diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts index 4cf7c4df..448ac639 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts @@ -7,6 +7,11 @@ import { UpboundCrossplaneAddOn } from './upbound-crossplane-addon'; export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { id?: string | undefined; + readonly k8sProviderVersion: string; + constructor(k8sProviderVersion: string) { + this.k8sProviderVersion = k8sProviderVersion; + } + @dependable(UpboundCrossplaneAddOn.name) deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { const cluster = clusterInfo.cluster; @@ -54,7 +59,9 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { kind: "Provider", metadata: { name: "kubernetes-provider" }, spec: { - package: "xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0", + // package: "xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0", + package: "xpkg.upbound.io/crossplane-contrib/provider-kubernetes:${this.k8sProviderVersion}", + runtimeConfigRef: { name: "kubernetes-runtime-config" } diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index 9cc2544d..8f0845b0 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -7,6 +7,7 @@ import { CrossplaneK8sProviderAddon } from './custom-addons/crossplane-k8s-prov import { CrossplaneHelmProviderAddon } from './custom-addons/crossplane-helm-provider-addon'; const gitUrl = 'https://github.com/aws-samples/eks-blueprints-workloads.git'; +const k8sProviderVersion = 'v0.13.0'; export default class ManagementClusterBuilder { readonly account: string; @@ -23,7 +24,7 @@ export default class ManagementClusterBuilder { const addOns: Array = [ new blueprints.addons.ExternalsSecretsAddOn, new UpboundCrossplaneAddOn, - new CrossplaneK8sProviderAddon, + new CrossplaneK8sProviderAddon(k8sProviderVersion), new CrossplaneHelmProviderAddon, new blueprints.SecretsStoreAddOn, new blueprints.ArgoCDAddOn({ @@ -38,7 +39,6 @@ export default class ManagementClusterBuilder { ]; const clusterProvider = new blueprints.MngClusterProvider({...mngProps, - tags: {"scope": "addon"}, clusterName:id }); diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 28c7ad66..a4441719 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -11,6 +11,7 @@ import {GenericClusterProvider, LookupRoleProvider} from "@aws-quickstart/eks-bl import {IRole} from "aws-cdk-lib/aws-iam"; import * as iam from 'aws-cdk-lib/aws-iam'; import {ManagedNodeGroup} from "@aws-quickstart/eks-blueprints/dist/cluster-providers/types"; +import { prevalidateSecrets } from "../common/construct-utils"; const account = process.env.CDK_DEFAULT_ACCOUNT ?? ""; //const region = process.env.CDK_DEFAULT_REGION ?? "us-east-1"; @@ -50,14 +51,14 @@ export default class MultiClusterPipelineConstruct { const account : string = props.account; const gitProps = { - owner :'jalawala', + owner :'aws-samples', secretName : props.gitHubSecret ?? 'github-access-eks-addon', - repoName : 'aws-addon-clusters-main', + repoName : 'cdk-eks-blueprints-patterns', revision : 'main' // use this to target a certain branch for deployment }; - await this.prevalidateSecrets(gitProps.secretName, region); + await prevalidateSecrets(gitProps.secretName, region); const addOns: Array = [ new blueprints.ExternalsSecretsAddOn({ @@ -154,16 +155,6 @@ export default class MultiClusterPipelineConstruct { .wave({ id: `${id}-wave`, stages }) .build(scope, id, { env: { account, region } }); } - - async prevalidateSecrets(secretName: string, region: string) { - try { - await blueprints.utils.validateSecret(secretName, region); - } - catch(error) { - throw new Error(`${secretName} secret must be setup in AWS Secrets Manager in ${region} for the GitHub pipeline. - * @see https://docs.aws.amazon.com/codepipeline/latest/userguide/GitHub-create-personal-token-CLI.html`); - } - } } function addManagedNodeGroup(id: string, clusterProps: blueprints.MngClusterProviderProps): ManagedNodeGroup { From a7f97ae962b030f21f7fbe532164ecb81692786d Mon Sep 17 00:00:00 2001 From: jalawala Date: Tue, 25 Jun 2024 15:29:02 +0530 Subject: [PATCH 07/43] passing variables values via gitops approach from argoCD --- .../management-cluster-builder.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index 8f0845b0..d4b28288 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -34,7 +34,22 @@ export default class ManagementClusterBuilder { targetRevision: 'main', credentialsSecretName: 'github-token', credentialsType: 'TOKEN' - } + }, + bootstrapValues: { + clusterA: { + clusterName: 'amd-1-29-blueprint' + }, + clusterB: { + clusterName: 'arm-1-29-blueprint' + }, + common: { + providerConfigAWSName: 'common-provider-config-aws', + eksConnectorRoleName: 'eks-connector-role', + accountId: process.env.CDK_DEFAULT_ACCOUNT, + region: process.env.CDK_DEFAULT_REGION, + crossplaneNamespace: 'upbound-system' + } + }, }), ]; From 60d940e14aa330a3bb01c3678ed3186774816d19 Mon Sep 17 00:00:00 2001 From: jalawala Date: Tue, 25 Jun 2024 16:49:44 +0530 Subject: [PATCH 08/43] fixing doc errors --- docs/patterns/kubeflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/patterns/kubeflow.md b/docs/patterns/kubeflow.md index 6f5b5663..d05213e1 100644 --- a/docs/patterns/kubeflow.md +++ b/docs/patterns/kubeflow.md @@ -70,7 +70,7 @@ kubectl port-forward svc/ml-pipeline-ui 9000:80 -n =kubeflow-pipelines ``` and open this browser: http://localhost:9000/#/pipelines -more pipeline examples can be found at https://www.kubeflow.org/docs/components/pipelines/tutorials/ +more pipeline examples can be found at https://www.kubeflow.org/docs/components/pipelines/ ## Cleanup From ba54f88744bb857afb778a2dd6b0ea4bada9dd10 Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 26 Jun 2024 07:34:39 +0530 Subject: [PATCH 09/43] add EKS Provider Addon and cleanup --- docs/patterns/crossplane-argocd-gitops.md | 24 ++++---- .../upbound-crossplane-eks-provider-addon.ts | 57 +++++++++++++++++++ .../management-cluster-builder.ts | 3 + .../multi-cluster-pipeline.ts | 3 +- 4 files changed, 74 insertions(+), 13 deletions(-) create mode 100644 lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts diff --git a/docs/patterns/crossplane-argocd-gitops.md b/docs/patterns/crossplane-argocd-gitops.md index b31e0e72..1330523c 100644 --- a/docs/patterns/crossplane-argocd-gitops.md +++ b/docs/patterns/crossplane-argocd-gitops.md @@ -2,7 +2,7 @@ ## Objective -The objective of this pattern is to provide centralized management of Amazon EKS Addons, Kubernetes Applications and Helm charts in workload clusters. This approach consists of a Management Cluster and multiple workload clusters. The Management Cluster is created with ArgoCD and Crossplane Addons. The platform team creates Crossplane Manifest files for Amazon EKS Addons/Kubernetes Applications/Helm charts and pushes them to the GitOps Repo. The ArgoCD Application Controller in the Management Cluster reconcils these Crossplane Manifests and deploy them into Management Cluster. The Crossplane Controller in the Management Cluster deploys the Amazon EKS Addons/Kubernetes Applications/Helm charts into the Workload Clusters. +The objective of this pattern is to provide centralized management of Amazon EKS Addons, Kubernetes Applications and Helm charts in workload clusters. This approach consists of a Management Cluster and multiple workload clusters. The Management Cluster is created with ArgoCD and Crossplane Addons. The platform team creates Crossplane Manifest files for Amazon EKS Addons/Kubernetes Applications/Helm charts and pushes them to the GitOps Repo. The ArgoCD Application Controller in the Management Cluster reconciles these Crossplane Manifests and deploy them into Management Cluster. The Crossplane Controller in the Management Cluster deploys the Amazon EKS Addons/Kubernetes Applications/Helm charts into the Workload Clusters. This helps platform teams to simplify the process of deploying Addos and Apps from a central Management Cluster. In this Solution, we use CDK to deploy AWS CodePipeline which monitors this platform repo and deploy the Management and Workload Clusters using CDK EKS Blueprints. @@ -25,11 +25,11 @@ This blueprint will include the following: * Helm Crossplane Provider * Secrets Store AddOn * ArgoCD Addon -* The ArgoCD Addon is bootstrapped with [git-ops](https://github.com/aws-samples/eks-blueprints-workloads) which contains Crossplane Manifest files to deploy EKS Addons, Kubernetes Manifests and also Helm Charts. +* The ArgoCD Addon is bootstrapped with [GitOps](https://github.com/aws-samples/eks-blueprints-workloads) which contains Crossplane Manifest files to deploy EKS Addons, Kubernetes Manifests and also Helm Charts. -## GitOps confguration +## GitOps Configuration -For GitOps, the blueprint bootstrap the ArgoCD addon and points to the [EKS Blueprints Workload](https://github.com/aws-samples/eks-blueprints-workloads) sample repository. +For GitOps, the blueprint bootstrap the ArgoCD Addon and points to the [EKS Blueprints Workload](https://github.com/aws-samples/eks-blueprints-workloads) sample repository. ## Prerequisites @@ -188,9 +188,9 @@ blueprints-addon-argocd-server-84c8b597c9-98c95 1/1 Runnin ``` -### Create Kube context to access the `amd-1-29-blueprint` +### Create kubecontext to access the `amd-1-29-blueprint` -Go to the CloudFormation Stack `amd-1-29-amd-1-29-blueprint` outputs and search for a key starting with `amd129blueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `amd-1-29-blueprint` +Go to the CloudFormation Stack `amd-1-29-amd-1-29-blueprint` outputs and search for a key starting with `amd129blueprintConfigCommand` and copy it's value which an AWS command to create a the kubecontext for the `amd-1-29-blueprint` The example command looks like below. @@ -353,9 +353,9 @@ aws iam attach-role-policy \ ``` -### GitHub Access Token for the `git-ops` repo +### GitHub Access Token for the `GitOps` repo -In the [git-ops](https://github.com/aws-samples/eks-blueprints-workloads) repository, there are some ArgoCD Application configuration files, which in turn points to Crossplane Manifest files. These Crossplane Manifest files will be applied by ArgoCD in the Management Cluster to deploy EKS addons, Kubernetes Manifests and Helm charts into the workload clusters. To configure access to this repo for ArgoCD Repo Server, you need to create a GitHub token to access the `git-ops` repo. First create a plain-text Amazon secret `github-token` AWS Secret Manager, to hold a fine-grained GitHub access token for `git-ops` repo in and then create `blueprints-secret` of type `SecretProviderClass` in the Management Kubernetes Cluster. +In the [GitOps](https://github.com/aws-samples/eks-blueprints-workloads) repository, there are some ArgoCD Application configuration files, which in turn points to Crossplane Manifest files. These Crossplane Manifest files will be applied by ArgoCD in the Management Cluster to deploy EKS addons, Kubernetes Manifests and Helm charts into the workload clusters. To configure access to this repo for ArgoCD Repo Server, you need to create a GitHub token to access the `GitOps` repo. First create a plain-text Amazon secret `github-token` AWS Secret Manager, to hold a fine-grained GitHub access token for `GitOps` repo in and then create `blueprints-secret` of type `SecretProviderClass` in the Management Kubernetes Cluster. ```shell export GIT_OPS_GITHUB_PAT_TOKEN= @@ -440,7 +440,7 @@ argocd/cluster2 https://kubernetes.default.svc argocd default Synce ### Validate EKS Addons deployment in Workload Clusters -Run the below command to get the list of Crossplane AWS Provder Objects deployed in the Management Cluster. +Run the below command to get the list of Crossplane AWS Provider Config Objects deployed in the Management Cluster. ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.aws.upbound.io @@ -454,7 +454,7 @@ provider-config-aws-amd-1-29-blueprint 4h52m provider-config-aws-arm-1-29-blueprint 4h52m ``` -Run the below command to get the list of Crossplane AWS EKS Provder Addon Objects deployed in the Management Cluster. +Run the below command to get the list of EKS Addon Objects deployed in the Management Cluster. ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get addons.eks.aws.upbound.io @@ -478,7 +478,7 @@ Go to the Workload EKS Clusters and Ensure that EKS Addon is deployed successful ### Validate Kubernetes Manifests deployment in Workload Clusters -Run the below command to get the list of Crossplane Kubernetes Provder Objects deployed in the Management Cluster. +Run the below command to get the list of Crossplane Kubernetes Provider Objects deployed in the Management Cluster. ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.kubernetes.crossplane.io @@ -531,7 +531,7 @@ test-namespace-arm-1-29-blueprint Active 4h9m ### Validate Helm Chart deployment in Workload Clusters -Run the below command to get the list of Crossplane Kubernetes Provder Objects deployed in the Management Cluster. +Run the below command to get the list of Crossplane Helm Provider Objects deployed in the Management Cluster. ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.helm.crossplane.io diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts new file mode 100644 index 00000000..dc1a9720 --- /dev/null +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts @@ -0,0 +1,57 @@ +import 'source-map-support/register'; +import * as blueprints from '@aws-quickstart/eks-blueprints'; +import * as eks from "aws-cdk-lib/aws-eks"; +import { Construct } from 'constructs'; +import { dependable } from '@aws-quickstart/eks-blueprints/dist/utils'; +import { UpboundCrossplaneAddOn } from './upbound-crossplane-addon'; + +export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddOn { + id?: string | undefined; + readonly UpboundEKSProviderVersion: string; + constructor(UpboundEKSProviderVersion: string) { + this.UpboundEKSProviderVersion = UpboundEKSProviderVersion; + } + @dependable(UpboundCrossplaneAddOn.name) + deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { + const cluster = clusterInfo.cluster; + const crossplaneIRSARole = clusterInfo.getAddOnContexts().get("UpboundCrossplaneAddOn")!["arn"]; + const controllerConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "ControllerConfig", { + cluster: cluster, + manifest: [ + { + apiVersion: "pkg.crossplane.io/v1alpha1", + kind: "ControllerConfig", + metadata: { + name: "aws-config", + annotations: { + "eks.amazonaws.com/role-arn": crossplaneIRSARole + } + }, + spec: {}, + }, + ], + }); + + const awsEksProvider = new eks.KubernetesManifest(clusterInfo.cluster.stack, "EKSProvider", { + cluster: cluster, + manifest: [ + { + apiVersion: "pkg.crossplane.io/v1", + kind: "Provider", + metadata: { + name: "provider-aws-eks", + }, + spec: { + package: "xpkg.upbound.io/upbound/provider-aws-eks:${this.UpboundEKSProviderVersion}", + controllerConfigRef: { + name: "aws-config" + } + }, + }, + ], + }); + + awsEksProvider.node.addDependency(controllerConfig); + return Promise.resolve(controllerConfig); + } +} diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index d4b28288..0b20e0cc 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -3,11 +3,13 @@ import * as blueprints from '@aws-quickstart/eks-blueprints'; import * as eks from 'aws-cdk-lib/aws-eks'; import { ObservabilityBuilder } from '@aws-quickstart/eks-blueprints'; import { UpboundCrossplaneAddOn } from './custom-addons/upbound-crossplane-addon'; +import { UpboundCrossplaneEKSProviderAddOn } from './custom-addons/upbound-crossplane-eks-provider-addon'; import { CrossplaneK8sProviderAddon } from './custom-addons/crossplane-k8s-provider-addon'; import { CrossplaneHelmProviderAddon } from './custom-addons/crossplane-helm-provider-addon'; const gitUrl = 'https://github.com/aws-samples/eks-blueprints-workloads.git'; const k8sProviderVersion = 'v0.13.0'; +const UpboundEKSProviderVersion = 'v1.1.0'; export default class ManagementClusterBuilder { readonly account: string; @@ -24,6 +26,7 @@ export default class ManagementClusterBuilder { const addOns: Array = [ new blueprints.addons.ExternalsSecretsAddOn, new UpboundCrossplaneAddOn, + new UpboundCrossplaneEKSProviderAddOn(UpboundEKSProviderVersion), new CrossplaneK8sProviderAddon(k8sProviderVersion), new CrossplaneHelmProviderAddon, new blueprints.SecretsStoreAddOn, diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index a4441719..0d7cf103 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -13,7 +13,8 @@ import * as iam from 'aws-cdk-lib/aws-iam'; import {ManagedNodeGroup} from "@aws-quickstart/eks-blueprints/dist/cluster-providers/types"; import { prevalidateSecrets } from "../common/construct-utils"; -const account = process.env.CDK_DEFAULT_ACCOUNT ?? ""; +// const account = process.env.CDK_DEFAULT_ACCOUNT ?? ""; +const account = process.env.CDK_DEFAULT_ACCOUNT; //const region = process.env.CDK_DEFAULT_REGION ?? "us-east-1"; const region = process.env.CDK_DEFAULT_REGION!; const minSize = parseInt(process.env.NODEGROUP_MIN ?? "1"); From 41331fac26c4fe8a2821e29a10f52fb2b06b10da Mon Sep 17 00:00:00 2001 From: jalawala Date: Thu, 27 Jun 2024 18:23:50 +0530 Subject: [PATCH 10/43] fixing typos --- lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 0d7cf103..a4966519 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -14,7 +14,7 @@ import {ManagedNodeGroup} from "@aws-quickstart/eks-blueprints/dist/cluster-prov import { prevalidateSecrets } from "../common/construct-utils"; // const account = process.env.CDK_DEFAULT_ACCOUNT ?? ""; -const account = process.env.CDK_DEFAULT_ACCOUNT; +const account = process.env.CDK_DEFAULT_ACCOUNT!; //const region = process.env.CDK_DEFAULT_REGION ?? "us-east-1"; const region = process.env.CDK_DEFAULT_REGION!; const minSize = parseInt(process.env.NODEGROUP_MIN ?? "1"); From 00b033749e18c5d08977a0ff5e1676faa24cd414 Mon Sep 17 00:00:00 2001 From: jalawala Date: Mon, 22 Jul 2024 15:05:55 +0530 Subject: [PATCH 11/43] fixing review comments --- docs/patterns/crossplane-argocd-gitops.md | 30 ++++++++++++++----- .../crossplane-helm-provider-addon.ts | 6 ++-- .../crossplane-k8s-provider-addon.ts | 16 +++++----- .../custom-addons/mgmt-role-teams.ts | 7 ++--- .../multi-cluster-options.ts | 4 +-- 5 files changed, 36 insertions(+), 27 deletions(-) diff --git a/docs/patterns/crossplane-argocd-gitops.md b/docs/patterns/crossplane-argocd-gitops.md index 1330523c..481a4b04 100644 --- a/docs/patterns/crossplane-argocd-gitops.md +++ b/docs/patterns/crossplane-argocd-gitops.md @@ -2,9 +2,9 @@ ## Objective -The objective of this pattern is to provide centralized management of Amazon EKS Addons, Kubernetes Applications and Helm charts in workload clusters. This approach consists of a Management Cluster and multiple workload clusters. The Management Cluster is created with ArgoCD and Crossplane Addons. The platform team creates Crossplane Manifest files for Amazon EKS Addons/Kubernetes Applications/Helm charts and pushes them to the GitOps Repo. The ArgoCD Application Controller in the Management Cluster reconciles these Crossplane Manifests and deploy them into Management Cluster. The Crossplane Controller in the Management Cluster deploys the Amazon EKS Addons/Kubernetes Applications/Helm charts into the Workload Clusters. +The objective of this pattern is to provide centralized management of Amazon EKS add-ons, Kubernetes Applications and Helm charts in workload clusters. This approach consists of a Management Cluster and multiple workload clusters. The Management Cluster is created with ArgoCD and Crossplane add-ons. The platform team creates Crossplane Manifest files for Amazon EKS add-ons/Kubernetes Applications/Helm charts and pushes them to the GitOps Repo. The ArgoCD Application Controller in the Management Cluster reconciles these Crossplane Manifests and deploy them into Management Cluster. The Crossplane Controller in the Management Cluster deploys the Amazon EKS add-ons/Kubernetes Applications/Helm charts into the Workload Clusters. -This helps platform teams to simplify the process of deploying Addos and Apps from a central Management Cluster. In this Solution, we use CDK to deploy AWS CodePipeline which monitors this platform repo and deploy the Management and Workload Clusters using CDK EKS Blueprints. +This helps platform teams to simplify the process of deploying add-ons and Apps from a central Management Cluster. In this Solution, we use CDK to deploy AWS CodePipeline which monitors this platform repo and deploy the Management and Workload Clusters using CDK EKS Blueprints. ## Architecture @@ -14,10 +14,10 @@ This helps platform teams to simplify the process of deploying Addos and Apps fr This blueprint will include the following: -* AWS CodePipeline which deploy the Management and Workload Clusters +* AWS CodePipeline which deploys the Management and Workload Clusters * A new Well-Architected EKS cluster `management-cluster` and two workload EKS Clusters `amd-1-29-blueprint` and `arm-1-29-blueprint` in the region and account you specify. * [Amazon VPC CNI add-on (VpcCni)](https://docs.aws.amazon.com/eks/latest/userguide/managing-vpc-cni.html) into your cluster to support native VPC networking for Amazon EKS. -* The Management Cluster is deployed with the following Addons. +* The Management Cluster is deployed with the following add-ons. * Upbound Universal Crossplane Provider * Upbound AWS Family Crossplane Provider * Upbound AWS EKS Crossplane Provider @@ -25,7 +25,7 @@ This blueprint will include the following: * Helm Crossplane Provider * Secrets Store AddOn * ArgoCD Addon -* The ArgoCD Addon is bootstrapped with [GitOps](https://github.com/aws-samples/eks-blueprints-workloads) which contains Crossplane Manifest files to deploy EKS Addons, Kubernetes Manifests and also Helm Charts. +* The ArgoCD Addon is bootstrapped with [GitOps](https://github.com/aws-samples/eks-blueprints-workloads) which contains Crossplane Manifest files to deploy EKS add-ons, Kubernetes Manifests and also Helm Charts. ## GitOps Configuration @@ -317,11 +317,25 @@ aws iam update-assume-role-policy --role-name $providerawssaiamrole --policy-doc ### Add IAM permissions to `eks-connector-role` AWS Role -Both of the Workload EKS Clusters i.e. `amd-1-29-blueprint` and `arm-1-29-blueprint` are added a platform team IAM Role `eks-connector-role` with `system:masters` access using the AWS Auth Config Map. +Both of the Workload EKS Clusters i.e. `amd-1-29-blueprint` and `arm-1-29-blueprint` are added a platform team IAM Role `eks-connector-role` with `system:masters` access using the AWS Auth Config Map. This is achieved through below configuration in the file `lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams.ts` + +```bash +import {PlatformTeam} from "@aws-quickstart/eks-blueprints"; +export class ProviderMgmtRoleTeam extends PlatformTeam { + constructor(accountID :string) { + const computedProviderRoleArn = `arn:aws:iam::${accountID}:role/eks-connector-role`; + super( { + name: computedProviderRoleArn, + userRoleArn: computedProviderRoleArn + }); + } +} +``` + The Upbound AWS EKS Provider Pod will use its IRSA IAM Role `mgmt-cluster-stage-mgmt-c-mgmtclusterstageblueprint-I8cnZsnO37rA` to assume the `eks-connector-role` AWS Role to gain access to the Workload Clusters. The `sts:AssumeRole` IAM permission is already being added to the IRSA Role during the Management Cluster creation process. -Since the IRSA Role will use `eks-connector-role` to create a Kubecontext object and deploy EKS Addons into the Workload clusters, the `eks-connector-role` Role needs `eks:*` IAM permissions. Note this IAM permissions can be made very granualar to provide least privileged access to Workload Clusters. +Since the IRSA Role will use `eks-connector-role` to create a Kubecontext object and deploy EKS add-ons into the Workload clusters, the `eks-connector-role` Role needs `eks:*` IAM permissions. Note this IAM permissions can be made very granualar to provide least privileged access to Workload Clusters. ```shell @@ -438,7 +452,7 @@ argocd/cluster2 https://kubernetes.default.svc argocd default Synce ``` -### Validate EKS Addons deployment in Workload Clusters +### Validate EKS add-ons deployment in Workload Clusters Run the below command to get the list of Crossplane AWS Provider Config Objects deployed in the Management Cluster. diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts index 7fe4fc09..a2e87302 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts @@ -11,7 +11,7 @@ export class CrossplaneHelmProviderAddon implements blueprints.ClusterAddOn { deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { const cluster = clusterInfo.cluster; - const role_binding = { + const roleBinding = { apiVersion: "rbac.authorization.k8s.io/v1", kind: "ClusterRoleBinding", metadata: { @@ -31,7 +31,7 @@ export class CrossplaneHelmProviderAddon implements blueprints.ClusterAddOn { } }; - const runtime_config = { + const runtimeConfig = { apiVersion: "pkg.crossplane.io/v1beta1", kind: "DeploymentRuntimeConfig", metadata: { @@ -65,7 +65,7 @@ export class CrossplaneHelmProviderAddon implements blueprints.ClusterAddOn { const runtimeHelmConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "runtimeHelmConfig", { cluster: cluster, - manifest: [role_binding, runtime_config] + manifest: [roleBinding, runtimeConfig] }); const awsHelmProvider = new eks.KubernetesManifest(clusterInfo.cluster.stack, "providerHelmResource", { diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts index 448ac639..534524ab 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts @@ -16,7 +16,7 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { const cluster = clusterInfo.cluster; - const role_binding1 = { + const roleBinding = { apiVersion: "rbac.authorization.k8s.io/v1", kind: "ClusterRoleBinding", metadata: { name: "kubernetes-provider" }, @@ -34,7 +34,7 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { } }; - const runtime_config1 = { + const runtimeConfig = { apiVersion: "pkg.crossplane.io/v1beta1", kind: "DeploymentRuntimeConfig", metadata: { @@ -54,7 +54,7 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { } }; - const providerK8sResource1 = { + const providerK8sResource = { apiVersion: "pkg.crossplane.io/v1", kind: "Provider", metadata: { name: "kubernetes-provider" }, @@ -68,18 +68,18 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { } }; - const runtimeK8sConfig1 = new eks.KubernetesManifest(clusterInfo.cluster.stack, "runtimeK8sConfig1", { + const runtimeK8sConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "runtimeK8sConfig", { cluster: cluster, - manifest: [role_binding1, runtime_config1] + manifest: [roleBinding, runtimeConfig] }); const awsK8sProvider1 = new eks.KubernetesManifest(clusterInfo.cluster.stack, "awsK8sProvider1", { cluster: cluster, - manifest: [providerK8sResource1] + manifest: [providerK8sResource] }); - awsK8sProvider1.node.addDependency(runtimeK8sConfig1); + awsK8sProvider1.node.addDependency(runtimeK8sConfig); - return Promise.resolve(runtimeK8sConfig1); + return Promise.resolve(runtimeK8sConfig); } } diff --git a/lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams.ts b/lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams.ts index f5d9991d..938c5f62 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams.ts @@ -1,13 +1,10 @@ - import {PlatformTeam} from "@aws-quickstart/eks-blueprints"; - export class ProviderMgmtRoleTeam extends PlatformTeam { constructor(accountID :string) { - // compute the ARN explicitly since we know its name - const computedProviderRoleArn = `arn:aws:iam::${accountID}:role/provider-aws-management-cluster`; + const computedProviderRoleArn = `arn:aws:iam::${accountID}:role/eks-connector-role`; super( { name: computedProviderRoleArn, userRoleArn: computedProviderRoleArn }); } -} +} \ No newline at end of file diff --git a/lib/crossplane-argocd-gitops/multi-cluster-options.ts b/lib/crossplane-argocd-gitops/multi-cluster-options.ts index 762a6263..28ff40f1 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-options.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-options.ts @@ -2,9 +2,7 @@ import {CapacityType, KubernetesVersion} from "aws-cdk-lib/aws-eks"; import * as ec2 from "aws-cdk-lib/aws-ec2"; import * as eks from "aws-cdk-lib/aws-eks"; -export const K8S_VERSIONS_PROD : KubernetesVersion[] = [KubernetesVersion.V1_25, KubernetesVersion.V1_26, - KubernetesVersion.V1_27, KubernetesVersion.V1_28]; // KubernetesVersion.V1_29 // when the time comes -//export const K8S_VERSIONS_DEV : KubernetesVersion[] = [ KubernetesVersion.V1_26 ,KubernetesVersion.V1_27, KubernetesVersion.V1_28, KubernetesVersion.of("1.29")]; +export const K8S_VERSIONS_PROD : KubernetesVersion[] = [KubernetesVersion.V1_27, KubernetesVersion.V1_28, KubernetesVersion.V1_29]; export const K8S_VERSIONS_DEV : KubernetesVersion[] = [ KubernetesVersion.of("1.29")]; From fd069aee2b34b539d939f14d90c4caaa860cf89d Mon Sep 17 00:00:00 2001 From: jalawala Date: Mon, 5 Aug 2024 11:08:49 +0530 Subject: [PATCH 12/43] automating iam role creation --- docs/patterns/crossplane-argocd-gitops.md | 4 ++-- .../multi-cluster-pipeline.ts | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/docs/patterns/crossplane-argocd-gitops.md b/docs/patterns/crossplane-argocd-gitops.md index 481a4b04..75705282 100644 --- a/docs/patterns/crossplane-argocd-gitops.md +++ b/docs/patterns/crossplane-argocd-gitops.md @@ -333,9 +333,9 @@ export class ProviderMgmtRoleTeam extends PlatformTeam { ``` -The Upbound AWS EKS Provider Pod will use its IRSA IAM Role `mgmt-cluster-stage-mgmt-c-mgmtclusterstageblueprint-I8cnZsnO37rA` to assume the `eks-connector-role` AWS Role to gain access to the Workload Clusters. The `sts:AssumeRole` IAM permission is already being added to the IRSA Role during the Management Cluster creation process. +The Upbound AWS EKS Provider Pod will use its IRSA IAM Role `mgmt-cluster-stage-mgmt-c-mgmtclusterstageblueprint-I8cnZsnO37rA` to assume the `eks-connector-role` IAM role to gain access to the Workload Clusters. The `sts:AssumeRole` IAM permission is already being added to the IRSA Role during the Management Cluster creation process. -Since the IRSA Role will use `eks-connector-role` to create a Kubecontext object and deploy EKS add-ons into the Workload clusters, the `eks-connector-role` Role needs `eks:*` IAM permissions. Note this IAM permissions can be made very granualar to provide least privileged access to Workload Clusters. +Since the IRSA Role will use `eks-connector-role` to create a Kubecontext object and deploy EKS add-ons into the Workload clusters, the `eks-connector-role` role needs `eks:*` IAM permissions. Note this IAM permissions can be made very granualar to provide least privileged access to Workload clusters. ```shell diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index a4966519..3f6f1873 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -35,7 +35,7 @@ const props : MultiClusterOptions = { const mngProps: blueprints.MngClusterProviderProps = { - version: KubernetesVersion.V1_28, + version: KubernetesVersion.V1_29, instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE2)], amiType: eks.NodegroupAmiType.AL2_X86_64, desiredSize: 2, @@ -52,8 +52,8 @@ export default class MultiClusterPipelineConstruct { const account : string = props.account; const gitProps = { - owner :'aws-samples', - secretName : props.gitHubSecret ?? 'github-access-eks-addon', + owner :'ajpaws', + secretName : props.gitHubSecret ?? 'cdk_blueprints_github_secret-new', repoName : 'cdk-eks-blueprints-patterns', revision : 'main' // use this to target a certain branch for deployment }; @@ -80,14 +80,19 @@ export default class MultiClusterPipelineConstruct { const baseBlueprint = blueprints.EksBlueprint.builder() .resourceProvider(blueprints.GlobalResources.Vpc, vpcProvider) - .resourceProvider('eks-connector-role', new LookupRoleProvider('eks-connector-role')) + .resourceProvider('eks-connector-role', + new blueprints.CreateRoleProvider( + 'eks-connector-role', + new iam.AnyPrincipal(), + [iam.ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess")]) + ) .account(account) .addOns(...addOns) .teams(new ProviderMgmtRoleTeam(account)) .useDefaultSecretEncryption(true); const mgmtCluster = new ManagementClusterBuilder(account, region) - .create(scope, 'management-cluster', mngProps) + .create(scope, 'mgmt-cluster', mngProps) .account(account) .region(region) .resourceProvider(blueprints.GlobalResources.Vpc, vpcProvider); @@ -108,7 +113,7 @@ export default class MultiClusterPipelineConstruct { }) ); stages.push({ - id: `amd-` + k8sVersion.version.replace(".", "-"), + id: `workload-amd-` + k8sVersion.version.replace(".", "-"), stackBuilder : blueprintAMD.clone(props.region).id(`amd-` + k8sVersion.version.replace(".", "-")) }); @@ -123,7 +128,7 @@ export default class MultiClusterPipelineConstruct { }) ); stages.push({ - id: `arm-` + k8sVersion.version.replace(".", "-"), + id: `workload-arm-` + k8sVersion.version.replace(".", "-"), stackBuilder : blueprintARM.clone(props.region).id(`arm-` + k8sVersion.version.replace(".", "-")) }); } From 32eb8da6a558c3d4467f11557a0bdb1384850833 Mon Sep 17 00:00:00 2001 From: jalawala Date: Mon, 5 Aug 2024 12:29:43 +0530 Subject: [PATCH 13/43] testing the stack --- lib/crossplane-argocd-gitops/management-cluster-builder.ts | 6 +++--- lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index 0b20e0cc..fcbbb05b 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -7,7 +7,7 @@ import { UpboundCrossplaneEKSProviderAddOn } from './custom-addons/upbound-cros import { CrossplaneK8sProviderAddon } from './custom-addons/crossplane-k8s-provider-addon'; import { CrossplaneHelmProviderAddon } from './custom-addons/crossplane-helm-provider-addon'; -const gitUrl = 'https://github.com/aws-samples/eks-blueprints-workloads.git'; +const gitUrl = 'https://github.com/ajpaws/eks-blueprints-workloads.git'; const k8sProviderVersion = 'v0.13.0'; const UpboundEKSProviderVersion = 'v1.1.0'; @@ -40,10 +40,10 @@ export default class ManagementClusterBuilder { }, bootstrapValues: { clusterA: { - clusterName: 'amd-1-29-blueprint' + clusterName: 'workload-amd-1-29-blueprint' }, clusterB: { - clusterName: 'arm-1-29-blueprint' + clusterName: 'workload-arm-1-29-blueprint' }, common: { providerConfigAWSName: 'common-provider-config-aws', diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 3f6f1873..3189d015 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -20,7 +20,7 @@ const region = process.env.CDK_DEFAULT_REGION!; const minSize = parseInt(process.env.NODEGROUP_MIN ?? "1"); const maxSize = parseInt(process.env.NODEGROUP_MAX ?? "3"); const desiredSize = parseInt(process.env.NODEGROUP_DESIRED ?? "1"); -const gitHubSecret = process.env.GITHUB_SECRET ?? "cdk_blueprints_github_secret"; +const gitHubSecret = process.env.GITHUB_SECRET ?? "cdk_blueprints_gitops_github_secret"; const props : MultiClusterOptions = { account, @@ -53,7 +53,7 @@ export default class MultiClusterPipelineConstruct { const gitProps = { owner :'ajpaws', - secretName : props.gitHubSecret ?? 'cdk_blueprints_github_secret-new', + secretName : props.gitHubSecret ?? 'cdk_blueprints_gitops_github_secret', repoName : 'cdk-eks-blueprints-patterns', revision : 'main' // use this to target a certain branch for deployment }; From ee9407905f6dc9debd6b970078d788713496f57c Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 7 Aug 2024 18:59:17 +0530 Subject: [PATCH 14/43] fixing pipeline errors --- .../multi-cluster-pipeline.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 3189d015..c0afe82a 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -7,7 +7,7 @@ import * as eks from "aws-cdk-lib/aws-eks"; import * as ec2 from "aws-cdk-lib/aws-ec2"; import ManagementClusterBuilder from "./management-cluster-builder"; import {ProviderMgmtRoleTeam} from "./custom-addons/mgmt-role-teams"; -import {GenericClusterProvider, LookupRoleProvider} from "@aws-quickstart/eks-blueprints"; +import {GenericClusterProvider} from "@aws-quickstart/eks-blueprints"; import {IRole} from "aws-cdk-lib/aws-iam"; import * as iam from 'aws-cdk-lib/aws-iam'; import {ManagedNodeGroup} from "@aws-quickstart/eks-blueprints/dist/cluster-providers/types"; @@ -81,10 +81,10 @@ export default class MultiClusterPipelineConstruct { const baseBlueprint = blueprints.EksBlueprint.builder() .resourceProvider(blueprints.GlobalResources.Vpc, vpcProvider) .resourceProvider('eks-connector-role', - new blueprints.CreateRoleProvider( - 'eks-connector-role', - new iam.AnyPrincipal(), - [iam.ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess")]) + new blueprints.CreateRoleProvider( + 'eks-connector-role', + new iam.AnyPrincipal(), + [iam.ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess")]) ) .account(account) .addOns(...addOns) @@ -134,6 +134,7 @@ export default class MultiClusterPipelineConstruct { } blueprints.CodePipelineStack.builder() + .application('npx ts-node bin/crossplane-argocd-gitops.ts') .name(id) .owner(gitProps.owner) .codeBuildPolicies( From 32c457e5c22664e41e5de0821a7be7c4e00fefd5 Mon Sep 17 00:00:00 2001 From: jalawala Date: Thu, 8 Aug 2024 08:01:16 +0530 Subject: [PATCH 15/43] fixing deployment issues --- .../custom-addons/crossplane-k8s-provider-addon.ts | 2 +- .../custom-addons/upbound-crossplane-eks-provider-addon.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts index 534524ab..1612e65d 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts @@ -60,7 +60,7 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { metadata: { name: "kubernetes-provider" }, spec: { // package: "xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0", - package: "xpkg.upbound.io/crossplane-contrib/provider-kubernetes:${this.k8sProviderVersion}", + package: "xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0", runtimeConfigRef: { name: "kubernetes-runtime-config" diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts index dc1a9720..9c038a3f 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts @@ -42,7 +42,7 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO name: "provider-aws-eks", }, spec: { - package: "xpkg.upbound.io/upbound/provider-aws-eks:${this.UpboundEKSProviderVersion}", + package: "xpkg.upbound.io/upbound/provider-aws-eks:v1.1.0", controllerConfigRef: { name: "aws-config" } From 896e62fc7a5b5e44116d141a9afeed7c7ab6a051 Mon Sep 17 00:00:00 2001 From: jalawala Date: Thu, 8 Aug 2024 17:49:07 +0530 Subject: [PATCH 16/43] fixing few deployment issues --- .../custom-addons/crossplane-helm-provider-addon.ts | 9 ++++++++- .../custom-addons/crossplane-k8s-provider-addon.ts | 7 ++++--- .../upbound-crossplane-eks-provider-addon.ts | 3 ++- .../management-cluster-builder.ts | 9 ++++++--- lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts | 2 +- 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts index a2e87302..3e2887b9 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts @@ -7,6 +7,11 @@ import { UpboundCrossplaneAddOn } from './upbound-crossplane-addon'; export class CrossplaneHelmProviderAddon implements blueprints.ClusterAddOn { id?: string | undefined; + readonly helmProviderVersion: string; + constructor(helmProviderVersion: string) { + this.helmProviderVersion = helmProviderVersion; + } + @dependable(UpboundCrossplaneAddOn.name) deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { const cluster = clusterInfo.cluster; @@ -56,7 +61,9 @@ export class CrossplaneHelmProviderAddon implements blueprints.ClusterAddOn { kind: "Provider", metadata: { name: "helm-provider" }, spec: { - package: "xpkg.upbound.io/crossplane-contrib/provider-helm:v0.18.1", + // package: "xpkg.upbound.io/crossplane-contrib/provider-helm:v0.18.1", + package: 'xpkg.upbound.io/crossplane-contrib/provider-helm:'+this.helmProviderVersion, + runtimeConfigRef: { name: "helm-runtime-config" } diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts index 1612e65d..8de77e69 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts @@ -15,7 +15,8 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { @dependable(UpboundCrossplaneAddOn.name) deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { const cluster = clusterInfo.cluster; - + // const packageUrl = 'xpkg.upbound.io/crossplane-contrib/provider-kubernetes:'+this.k8sProviderVersion; + const roleBinding = { apiVersion: "rbac.authorization.k8s.io/v1", kind: "ClusterRoleBinding", @@ -60,8 +61,8 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { metadata: { name: "kubernetes-provider" }, spec: { // package: "xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0", - package: "xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0", - + // package: "xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0", + package: 'xpkg.upbound.io/crossplane-contrib/provider-kubernetes:'+this.k8sProviderVersion, runtimeConfigRef: { name: "kubernetes-runtime-config" } diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts index 9c038a3f..11c64ae6 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts @@ -42,7 +42,8 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO name: "provider-aws-eks", }, spec: { - package: "xpkg.upbound.io/upbound/provider-aws-eks:v1.1.0", + // package: "xpkg.upbound.io/upbound/provider-aws-eks:v1.1.0", + package: 'xpkg.upbound.io/upbound/provider-aws-eks:'+this.UpboundEKSProviderVersion, controllerConfigRef: { name: "aws-config" } diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index fcbbb05b..beb476e3 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -10,6 +10,9 @@ import { CrossplaneHelmProviderAddon } from './custom-addons/crossplane-helm-pr const gitUrl = 'https://github.com/ajpaws/eks-blueprints-workloads.git'; const k8sProviderVersion = 'v0.13.0'; const UpboundEKSProviderVersion = 'v1.1.0'; +// const helmProviderVersion = 'v0.18.1'; +const helmProviderVersion = 'v0.19.10'; + export default class ManagementClusterBuilder { readonly account: string; @@ -28,12 +31,12 @@ export default class ManagementClusterBuilder { new UpboundCrossplaneAddOn, new UpboundCrossplaneEKSProviderAddOn(UpboundEKSProviderVersion), new CrossplaneK8sProviderAddon(k8sProviderVersion), - new CrossplaneHelmProviderAddon, + new CrossplaneHelmProviderAddon(helmProviderVersion), new blueprints.SecretsStoreAddOn, new blueprints.ArgoCDAddOn({ bootstrapRepo: { repoUrl: gitUrl, - path: `./crossplane-arocd-gitops/envs/dev`, + path: `./crossplane-argocd-gitops/envs/dev`, targetRevision: 'main', credentialsSecretName: 'github-token', credentialsType: 'TOKEN' @@ -62,7 +65,7 @@ export default class ManagementClusterBuilder { return ObservabilityBuilder.builder() .clusterProvider(clusterProvider) - .version(eks.KubernetesVersion.V1_28) + .version(eks.KubernetesVersion.V1_29) .enableNativePatternAddOns() .enableControlPlaneLogging() .addOns(...addOns); diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index c0afe82a..aeeb2b79 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -83,7 +83,7 @@ export default class MultiClusterPipelineConstruct { .resourceProvider('eks-connector-role', new blueprints.CreateRoleProvider( 'eks-connector-role', - new iam.AnyPrincipal(), + new iam.AccountPrincipal(account), [iam.ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess")]) ) .account(account) From c3e1995af2174d1e6a962d5363eb78ddcf9cb14b Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 14 Aug 2024 22:35:09 +0530 Subject: [PATCH 17/43] adding custom iam role creator resource --- .../custom-addons/custom-iam-role-creator.ts | 24 +++++++++++++++++++ .../management-cluster-builder.ts | 2 +- .../multi-cluster-pipeline.ts | 6 +++-- 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 lib/crossplane-argocd-gitops/custom-addons/custom-iam-role-creator.ts diff --git a/lib/crossplane-argocd-gitops/custom-addons/custom-iam-role-creator.ts b/lib/crossplane-argocd-gitops/custom-addons/custom-iam-role-creator.ts new file mode 100644 index 00000000..6babc552 --- /dev/null +++ b/lib/crossplane-argocd-gitops/custom-addons/custom-iam-role-creator.ts @@ -0,0 +1,24 @@ + +import * as iam from 'aws-cdk-lib/aws-iam'; +import { IManagedPolicy } from 'aws-cdk-lib/aws-iam'; + +import * as blueprints from '@aws-quickstart/eks-blueprints'; + +export class CreateNamedRoleProvider implements blueprints.ResourceProvider { + + /** + * Constructor to create role provider. + * @param roleId role id + * @param assumedBy @example new iam.ServicePrincipal('ec2.amazonaws.com') + * @param policies + */ + constructor(private roleId: string, private roleName: string, private assumedBy: iam.IPrincipal, private policies?: IManagedPolicy[]){} + + provide(context: blueprints.ResourceContext): iam.Role { + return new iam.Role(context.scope, this.roleId, { + assumedBy: this.assumedBy, + managedPolicies: this.policies, + roleName: this.roleName + }); + } +} diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index beb476e3..dff1c5eb 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -11,7 +11,7 @@ const gitUrl = 'https://github.com/ajpaws/eks-blueprints-workloads.git'; const k8sProviderVersion = 'v0.13.0'; const UpboundEKSProviderVersion = 'v1.1.0'; // const helmProviderVersion = 'v0.18.1'; -const helmProviderVersion = 'v0.19.10'; +const helmProviderVersion = 'v0.19.0'; export default class ManagementClusterBuilder { diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index aeeb2b79..688c5b9e 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -12,6 +12,7 @@ import {IRole} from "aws-cdk-lib/aws-iam"; import * as iam from 'aws-cdk-lib/aws-iam'; import {ManagedNodeGroup} from "@aws-quickstart/eks-blueprints/dist/cluster-providers/types"; import { prevalidateSecrets } from "../common/construct-utils"; +import {CreateNamedRoleProvider} from "./custom-addons/custom-iam-role-creator"; // const account = process.env.CDK_DEFAULT_ACCOUNT ?? ""; const account = process.env.CDK_DEFAULT_ACCOUNT!; @@ -81,8 +82,8 @@ export default class MultiClusterPipelineConstruct { const baseBlueprint = blueprints.EksBlueprint.builder() .resourceProvider(blueprints.GlobalResources.Vpc, vpcProvider) .resourceProvider('eks-connector-role', - new blueprints.CreateRoleProvider( - 'eks-connector-role', + new CreateNamedRoleProvider( + 'eks-connector-role', 'eks-connector-role', new iam.AccountPrincipal(account), [iam.ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess")]) ) @@ -91,6 +92,7 @@ export default class MultiClusterPipelineConstruct { .teams(new ProviderMgmtRoleTeam(account)) .useDefaultSecretEncryption(true); + const mgmtCluster = new ManagementClusterBuilder(account, region) .create(scope, 'mgmt-cluster', mngProps) .account(account) From 80a86344fbe263d3572d272e49893796d8bfe783 Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 14 Aug 2024 23:06:32 +0530 Subject: [PATCH 18/43] testing custom iam role creator resource --- lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 688c5b9e..77de3938 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -81,9 +81,9 @@ export default class MultiClusterPipelineConstruct { const baseBlueprint = blueprints.EksBlueprint.builder() .resourceProvider(blueprints.GlobalResources.Vpc, vpcProvider) - .resourceProvider('eks-connector-role', + .resourceProvider('workload-eks-connector-role', new CreateNamedRoleProvider( - 'eks-connector-role', 'eks-connector-role', + 'workload-eks-connector-role', 'workload-eks-connector-role', new iam.AccountPrincipal(account), [iam.ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess")]) ) @@ -108,7 +108,7 @@ export default class MultiClusterPipelineConstruct { .clusterProvider( new GenericClusterProvider( { version: k8sVersion, - mastersRole: blueprints.getNamedResource('eks-connector-role') as IRole, + mastersRole: blueprints.getNamedResource('workload-eks-connector-role') as IRole, managedNodeGroups : [addManagedNodeGroup( 'amd-tst-ng',{...clusterProps, amiType : NodegroupAmiType.AL2_X86_64, instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE)]})] @@ -123,7 +123,7 @@ export default class MultiClusterPipelineConstruct { .clusterProvider( new GenericClusterProvider( { version: k8sVersion, - mastersRole: blueprints.getNamedResource('eks-connector-role') as IRole, + mastersRole: blueprints.getNamedResource('workload-eks-connector-role') as IRole, managedNodeGroups : [addManagedNodeGroup('arm-tst-ng',{...clusterProps, amiType : NodegroupAmiType.AL2_ARM_64, instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M7G, ec2.InstanceSize.XLARGE)]})] From f8f944283223026cf4baaca23b995b8f9d7d616d Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 14 Aug 2024 23:42:17 +0530 Subject: [PATCH 19/43] fixing duplicate role creation --- .../multi-cluster-pipeline.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 77de3938..76397005 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -79,14 +79,14 @@ export default class MultiClusterPipelineConstruct { const stages : blueprints.StackStage[] = []; const vpcProvider= new blueprints.VpcProvider(); + const eksConnectorRole = new CreateNamedRoleProvider("eks-connector-role", "eks-connector-role", new iam.AccountPrincipal(account), + [ + iam.ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess") + ]); + const baseBlueprint = blueprints.EksBlueprint.builder() .resourceProvider(blueprints.GlobalResources.Vpc, vpcProvider) - .resourceProvider('workload-eks-connector-role', - new CreateNamedRoleProvider( - 'workload-eks-connector-role', 'workload-eks-connector-role', - new iam.AccountPrincipal(account), - [iam.ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess")]) - ) + .resourceProvider('eks-connector-role', eksConnectorRole) .account(account) .addOns(...addOns) .teams(new ProviderMgmtRoleTeam(account)) @@ -108,7 +108,7 @@ export default class MultiClusterPipelineConstruct { .clusterProvider( new GenericClusterProvider( { version: k8sVersion, - mastersRole: blueprints.getNamedResource('workload-eks-connector-role') as IRole, + mastersRole: blueprints.getNamedResource('eks-connector-role') as IRole, managedNodeGroups : [addManagedNodeGroup( 'amd-tst-ng',{...clusterProps, amiType : NodegroupAmiType.AL2_X86_64, instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE)]})] @@ -123,7 +123,7 @@ export default class MultiClusterPipelineConstruct { .clusterProvider( new GenericClusterProvider( { version: k8sVersion, - mastersRole: blueprints.getNamedResource('workload-eks-connector-role') as IRole, + mastersRole: blueprints.getNamedResource('eks-connector-role') as IRole, managedNodeGroups : [addManagedNodeGroup('arm-tst-ng',{...clusterProps, amiType : NodegroupAmiType.AL2_ARM_64, instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M7G, ec2.InstanceSize.XLARGE)]})] From 26e0dca7476c0ceacb590f66167db38a0f6670a3 Mon Sep 17 00:00:00 2001 From: jalawala Date: Thu, 15 Aug 2024 19:33:38 +0530 Subject: [PATCH 20/43] testing custom iam role provider resource --- lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 76397005..374e8416 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -79,14 +79,14 @@ export default class MultiClusterPipelineConstruct { const stages : blueprints.StackStage[] = []; const vpcProvider= new blueprints.VpcProvider(); - const eksConnectorRole = new CreateNamedRoleProvider("eks-connector-role", "eks-connector-role", new iam.AccountPrincipal(account), + const eksConnectorRole = new CreateNamedRoleProvider("eks-workload-connector-role", "eks-workload-connector-role", new iam.AccountPrincipal(account), [ iam.ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess") ]); const baseBlueprint = blueprints.EksBlueprint.builder() .resourceProvider(blueprints.GlobalResources.Vpc, vpcProvider) - .resourceProvider('eks-connector-role', eksConnectorRole) + .resourceProvider('eks-workload-connector-role', eksConnectorRole) .account(account) .addOns(...addOns) .teams(new ProviderMgmtRoleTeam(account)) @@ -108,7 +108,7 @@ export default class MultiClusterPipelineConstruct { .clusterProvider( new GenericClusterProvider( { version: k8sVersion, - mastersRole: blueprints.getNamedResource('eks-connector-role') as IRole, + mastersRole: blueprints.getNamedResource('eks-workload-connector-role') as IRole, managedNodeGroups : [addManagedNodeGroup( 'amd-tst-ng',{...clusterProps, amiType : NodegroupAmiType.AL2_X86_64, instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE)]})] @@ -123,7 +123,7 @@ export default class MultiClusterPipelineConstruct { .clusterProvider( new GenericClusterProvider( { version: k8sVersion, - mastersRole: blueprints.getNamedResource('eks-connector-role') as IRole, + mastersRole: blueprints.getNamedResource('eks-workload-connector-role') as IRole, managedNodeGroups : [addManagedNodeGroup('arm-tst-ng',{...clusterProps, amiType : NodegroupAmiType.AL2_ARM_64, instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M7G, ec2.InstanceSize.XLARGE)]})] From 02aec06b1f6cfb03b6e97d3e36577e354ce246cc Mon Sep 17 00:00:00 2001 From: jalawala Date: Fri, 16 Aug 2024 16:06:48 +0530 Subject: [PATCH 21/43] fixing duplicate iam role creation --- .../multi-cluster-pipeline.ts | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 374e8416..41567339 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -7,7 +7,7 @@ import * as eks from "aws-cdk-lib/aws-eks"; import * as ec2 from "aws-cdk-lib/aws-ec2"; import ManagementClusterBuilder from "./management-cluster-builder"; import {ProviderMgmtRoleTeam} from "./custom-addons/mgmt-role-teams"; -import {GenericClusterProvider} from "@aws-quickstart/eks-blueprints"; +import {GenericClusterProvider, LookupRoleProvider} from "@aws-quickstart/eks-blueprints"; import {IRole} from "aws-cdk-lib/aws-iam"; import * as iam from 'aws-cdk-lib/aws-iam'; import {ManagedNodeGroup} from "@aws-quickstart/eks-blueprints/dist/cluster-providers/types"; @@ -84,7 +84,7 @@ export default class MultiClusterPipelineConstruct { iam.ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess") ]); - const baseBlueprint = blueprints.EksBlueprint.builder() + const baseBlueprintARM = blueprints.EksBlueprint.builder() .resourceProvider(blueprints.GlobalResources.Vpc, vpcProvider) .resourceProvider('eks-workload-connector-role', eksConnectorRole) .account(account) @@ -92,6 +92,14 @@ export default class MultiClusterPipelineConstruct { .teams(new ProviderMgmtRoleTeam(account)) .useDefaultSecretEncryption(true); + const baseBlueprintAMD = blueprints.EksBlueprint.builder() + .resourceProvider(blueprints.GlobalResources.Vpc, vpcProvider) + .resourceProvider('eks-workload-connector-role', new LookupRoleProvider('eks-workload-connector-role')) + .account(account) + .addOns(...addOns) + .teams(new ProviderMgmtRoleTeam(account)) + .useDefaultSecretEncryption(true); + const mgmtCluster = new ManagementClusterBuilder(account, region) .create(scope, 'mgmt-cluster', mngProps) @@ -102,13 +110,13 @@ export default class MultiClusterPipelineConstruct { const mgmtStage = [{id: `mgmt-cluster-stage` , stackBuilder: mgmtCluster}]; for(const k8sVersion of k8sVersions) { - baseBlueprint.version(k8sVersion); + baseBlueprintARM.version(k8sVersion); - const blueprintAMD = baseBlueprint + const blueprintAMD = baseBlueprintAMD .clusterProvider( new GenericClusterProvider( { version: k8sVersion, - mastersRole: blueprints.getNamedResource('eks-workload-connector-role') as IRole, + mastersRole: blueprints.getNamedResource('eks-workload-connector-role') as IRole, managedNodeGroups : [addManagedNodeGroup( 'amd-tst-ng',{...clusterProps, amiType : NodegroupAmiType.AL2_X86_64, instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE)]})] @@ -119,7 +127,7 @@ export default class MultiClusterPipelineConstruct { stackBuilder : blueprintAMD.clone(props.region).id(`amd-` + k8sVersion.version.replace(".", "-")) }); - const blueprintARM = baseBlueprint + const blueprintARM = baseBlueprintARM .clusterProvider( new GenericClusterProvider( { version: k8sVersion, From 89f43f4f56509f188cde4d880e93aae8e5c78986 Mon Sep 17 00:00:00 2001 From: jalawala Date: Fri, 16 Aug 2024 20:02:25 +0530 Subject: [PATCH 22/43] clean up --- .../custom-addons/mgmt-role-teams.ts | 10 ---------- .../custom-addons/upbound-crossplane-addon.ts | 2 +- .../management-cluster-builder.ts | 2 +- lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts | 3 --- 4 files changed, 2 insertions(+), 15 deletions(-) delete mode 100644 lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams.ts diff --git a/lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams.ts b/lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams.ts deleted file mode 100644 index 938c5f62..00000000 --- a/lib/crossplane-argocd-gitops/custom-addons/mgmt-role-teams.ts +++ /dev/null @@ -1,10 +0,0 @@ -import {PlatformTeam} from "@aws-quickstart/eks-blueprints"; -export class ProviderMgmtRoleTeam extends PlatformTeam { - constructor(accountID :string) { - const computedProviderRoleArn = `arn:aws:iam::${accountID}:role/eks-connector-role`; - super( { - name: computedProviderRoleArn, - userRoleArn: computedProviderRoleArn - }); - } -} \ No newline at end of file diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts index d420393f..b725d460 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts @@ -58,7 +58,7 @@ export class UpboundCrossplaneAddOn extends blueprints.HelmAddOn { { "Effect": "Allow", "Action": ["sts:AssumeRole"], - "Resource": `arn:aws:iam::${cluster.stack.account}:role/eks-connector-role` + "Resource": `arn:aws:iam::${cluster.stack.account}:role/eks-workload-connector-role` }, { "Effect": "Allow", diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index dff1c5eb..b80d518b 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -50,7 +50,7 @@ export default class ManagementClusterBuilder { }, common: { providerConfigAWSName: 'common-provider-config-aws', - eksConnectorRoleName: 'eks-connector-role', + eksConnectorRoleName: 'eks-workload-connector-role', accountId: process.env.CDK_DEFAULT_ACCOUNT, region: process.env.CDK_DEFAULT_REGION, crossplaneNamespace: 'upbound-system' diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 41567339..35e5b58b 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -6,7 +6,6 @@ import {NodegroupAmiType} from "aws-cdk-lib/aws-eks"; import * as eks from "aws-cdk-lib/aws-eks"; import * as ec2 from "aws-cdk-lib/aws-ec2"; import ManagementClusterBuilder from "./management-cluster-builder"; -import {ProviderMgmtRoleTeam} from "./custom-addons/mgmt-role-teams"; import {GenericClusterProvider, LookupRoleProvider} from "@aws-quickstart/eks-blueprints"; import {IRole} from "aws-cdk-lib/aws-iam"; import * as iam from 'aws-cdk-lib/aws-iam'; @@ -89,7 +88,6 @@ export default class MultiClusterPipelineConstruct { .resourceProvider('eks-workload-connector-role', eksConnectorRole) .account(account) .addOns(...addOns) - .teams(new ProviderMgmtRoleTeam(account)) .useDefaultSecretEncryption(true); const baseBlueprintAMD = blueprints.EksBlueprint.builder() @@ -97,7 +95,6 @@ export default class MultiClusterPipelineConstruct { .resourceProvider('eks-workload-connector-role', new LookupRoleProvider('eks-workload-connector-role')) .account(account) .addOns(...addOns) - .teams(new ProviderMgmtRoleTeam(account)) .useDefaultSecretEncryption(true); From 41bdaaf00a412da48dfe923ff5f1b133c1469174 Mon Sep 17 00:00:00 2001 From: jalawala Date: Sat, 17 Aug 2024 19:06:20 +0530 Subject: [PATCH 23/43] cleanup --- docs/patterns/crossplane-argocd-gitops.md | 153 +++++++----------- docs/patterns/images/amd-1.29-addon.png | Bin 108320 -> 0 bytes docs/patterns/images/amd-add-on.png | Bin 0 -> 124488 bytes docs/patterns/images/arm-1.29-addon.png | Bin 113304 -> 0 bytes docs/patterns/images/arm-add-on.png | Bin 0 -> 123809 bytes .../crossplane-helm-provider-addon.ts | 1 - .../crossplane-k8s-provider-addon.ts | 3 - .../management-cluster-builder.ts | 2 +- .../multi-cluster-pipeline.ts | 2 +- 9 files changed, 58 insertions(+), 103 deletions(-) delete mode 100644 docs/patterns/images/amd-1.29-addon.png create mode 100644 docs/patterns/images/amd-add-on.png delete mode 100644 docs/patterns/images/arm-1.29-addon.png create mode 100644 docs/patterns/images/arm-add-on.png diff --git a/docs/patterns/crossplane-argocd-gitops.md b/docs/patterns/crossplane-argocd-gitops.md index 75705282..8a0433d9 100644 --- a/docs/patterns/crossplane-argocd-gitops.md +++ b/docs/patterns/crossplane-argocd-gitops.md @@ -1,4 +1,4 @@ -# GitOps based Multi-cluster Addon and Apps Management using Crossplane and ArgoCD +# GitOps based Multi-cluster add-on and Apps Management using Crossplane and ArgoCD ## Objective @@ -15,7 +15,7 @@ This helps platform teams to simplify the process of deploying add-ons and Apps This blueprint will include the following: * AWS CodePipeline which deploys the Management and Workload Clusters -* A new Well-Architected EKS cluster `management-cluster` and two workload EKS Clusters `amd-1-29-blueprint` and `arm-1-29-blueprint` in the region and account you specify. +* A new Well-Architected EKS cluster `mgmt-cluster` and two workload EKS Clusters `workload-amd-1-29-blueprint` and `workload-arm-1-29-blueprint` in the region and account you specify. * [Amazon VPC CNI add-on (VpcCni)](https://docs.aws.amazon.com/eks/latest/userguide/managing-vpc-cni.html) into your cluster to support native VPC networking for Amazon EKS. * The Management Cluster is deployed with the following add-ons. * Upbound Universal Crossplane Provider @@ -24,12 +24,12 @@ This blueprint will include the following: * Kubernetes Crossplane Provider * Helm Crossplane Provider * Secrets Store AddOn - * ArgoCD Addon -* The ArgoCD Addon is bootstrapped with [GitOps](https://github.com/aws-samples/eks-blueprints-workloads) which contains Crossplane Manifest files to deploy EKS add-ons, Kubernetes Manifests and also Helm Charts. + * ArgoCD add-on +* The ArgoCD add-on is bootstrapped with [GitOps](https://github.com/aws-samples/eks-blueprints-workloads) which contains Crossplane Manifest files to deploy EKS add-ons, Kubernetes Manifests and also Helm Charts. ## GitOps Configuration -For GitOps, the blueprint bootstrap the ArgoCD Addon and points to the [EKS Blueprints Workload](https://github.com/aws-samples/eks-blueprints-workloads) sample repository. +For GitOps, the blueprint bootstrap the ArgoCD add-on and points to the [EKS Blueprints Workload](https://github.com/aws-samples/eks-blueprints-workloads) sample repository. ## Prerequisites @@ -95,29 +95,29 @@ make pattern aws-addon-clusters deploy ![codepipeline2](./images/codepipeline2.png) -### Create Kube context to access the `management-cluster` +### Create Kube context to access the `mgmt-cluster` -Go to the CloudFormation Stack `mgmt-cluster-stage-mgmt-cluster-stage-blueprint` outputs and search for a key starting with `mgmtclusterstageblueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `management-cluster` +Go to the CloudFormation Stack `mgmt-cluster-stage-mgmt-cluster-stage-blueprint` outputs and search for a key starting with `mgmtclusterstageblueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `mgmt-cluster` The example command looks like below. ```shell -aws eks update-kubeconfig --name management-cluster --region us-east-1 --role-arn arn:aws:iam::ACCOUNT_ID:role/mgmt-cluster-stage-mgmt-c-managementclusterAccessRo-XYSC5PKL8WnA +aws eks update-kubeconfig --name mgmt-cluster --region us-west-2 --role-arn arn:aws:iam::ACCOUNT_ID:role/mgmt-cluster-stage-mgmt-c-managementclusterAccessRo-XYSC5PKL8WnA ``` The output will look like below. ```shell -Updated context arn:aws:eks:us-east-1:ACCOUNT_ID:cluster/management-cluster in /Users//.kube/config +Updated context arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/mgmt-cluster in /Users//.kube/config ``` Set below environment variable to the above context ```shell -export MANAGEMENT_CLUSTER_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/management-cluster" +export MANAGEMENT_CLUSTER_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/mgmt-cluster" echo "export MANAGEMENT_CLUSTER_CONTEXT=${MANAGEMENT_CLUSTER_CONTEXT}" >> ~/.bash_profile ``` -Run below command to validate the access to the `management-cluster` +Run below command to validate the access to the `mgmt-cluster` ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get node @@ -132,7 +132,7 @@ ip-10-0-175-104.ec2.internal Ready 6d8h v1.28.8-eks-ae9a62a ``` -Run below command to get list of Crossplane Providers deployed into the `management-cluster` +Run below command to get list of Crossplane Providers deployed into the `mgmt-cluster` ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providers.pkg.crossplane.io @@ -149,7 +149,7 @@ upbound-provider-family-aws True True xpkg.upbound.io/upbound/prov ``` -Run below command to get the Crossplane Providers pods to the `management-cluster` +Run below command to get the Crossplane Providers pods to the `mgmt-cluster` ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get pod -n upbound-system @@ -168,7 +168,7 @@ upbound-provider-family-aws-bac5d48bd353-64845bdcbc-4vpn6 1/1 Running 0 ``` -Run below command to get the ArgoCD pods deployed into the `management-cluster` +Run below command to get the ArgoCD pods deployed into the `mgmt-cluster` ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get pod -n argocd @@ -188,29 +188,29 @@ blueprints-addon-argocd-server-84c8b597c9-98c95 1/1 Runnin ``` -### Create kubecontext to access the `amd-1-29-blueprint` +### Create kubecontext to access the `workload-amd-1-29-blueprint` -Go to the CloudFormation Stack `amd-1-29-amd-1-29-blueprint` outputs and search for a key starting with `amd129blueprintConfigCommand` and copy it's value which an AWS command to create a the kubecontext for the `amd-1-29-blueprint` +Go to the CloudFormation Stack `amd-1-29-workload-amd-1-29-blueprint` outputs and search for a key starting with `amd129blueprintConfigCommand` and copy it's value which an AWS command to create a the kubecontext for the `workload-amd-1-29-blueprint` The example command looks like below. ```shell -aws eks update-kubeconfig --name amd-1-29-blueprint --region us-east-1 --role-arn arn:aws:iam::ACCOUNT_ID:role/eks-connector-role +aws eks update-kubeconfig --name workload-amd-1-29-blueprint --region us-west-2 --role-arn arn:aws:iam::ACCOUNT_ID:role/eks-workload-connector-role ``` The output will look like below. ```shell -Added new context arn:aws:eks:us-east-1:ACCOUNT_ID:cluster/amd-1-29-blueprint to /Users/jalawala/.kube/config +Added new context arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/workload-amd-1-29-blueprint to /Users/jalawala/.kube/config ``` Set below environment variable to the above context ```shell -export WORKLOAD_CLUSTER1_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/amd-1-29-blueprint" +export WORKLOAD_CLUSTER1_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/workload-amd-1-29-blueprint" echo "export WORKLOAD_CLUSTER1_CONTEXT=${WORKLOAD_CLUSTER1_CONTEXT}" >> ~/.bash_profile ``` -Run below commands to validate the access to the `amd-1-29-blueprint` +Run below commands to validate the access to the `workload-amd-1-29-blueprint` ```shell kubectl --context $WORKLOAD_CLUSTER1_CONTEXT get node @@ -222,29 +222,29 @@ NAME STATUS ROLES AGE VERSION ip-10-0-96-158.ec2.internal Ready 6d9h v1.29.3-eks-ae9a62a ``` -### Create Kube context to access the `arm-1-29-blueprint` +### Create Kube context to access the `workload-arm-1-29-blueprint` -Go to the CloudFormation Stack `arm-1-29-arm-1-29-blueprint` outputs and search for a key starting with `arm129blueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `arm-1-29-blueprint` +Go to the CloudFormation Stack `arm-1-29-workload-arm-1-29-blueprint` outputs and search for a key starting with `arm129blueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `workload-arm-1-29-blueprint` The example command looks like below. ```shell -aws eks update-kubeconfig --name arm-1-29-blueprint --region us-east-1 --role-arn arn:aws:iam::$ACCOUNT_ID:role/eks-connector-role +aws eks update-kubeconfig --name workload-arm-1-29-blueprint --region us-west-2 --role-arn arn:aws:iam::$ACCOUNT_ID:role/eks-workload-connector-role ``` The output will look like below. ```shell -Added new context arn:aws:eks:us-east-1:ACCOUNT_ID:cluster/arm-1-29-blueprint to /Users/jalawala/.kube/config +Added new context arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/workload-arm-1-29-blueprint to /Users/jalawala/.kube/config ``` Set below environment variable to the above context ```shell -export WORKLOAD_CLUSTER2_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/arm-1-29-blueprint" +export WORKLOAD_CLUSTER2_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/workload-arm-1-29-blueprint" echo "export WORKLOAD_CLUSTER2_CONTEXT=${WORKLOAD_CLUSTER2_CONTEXT}" >> ~/.bash_profile ``` -Run below commands to validate the access to the `arm-1-29-blueprint` +Run below commands to validate the access to the `workload-arm-1-29-blueprint` ```shell kubectl --context $WORKLOAD_CLUSTER2_CONTEXT get node @@ -276,10 +276,10 @@ The output will look like below. mgmt-cluster-stage-mgmt-c-mgmtclusterstageblueprint-I8cnZsnO37rA ``` -Get the OIDC for the `management-cluster` value by running: +Get the OIDC for the `mgmt-cluster` value by running: ```shell -export OIDC_VAL=$(aws eks describe-cluster --name "management-cluster" --region "${AWS_REGION}" --query "cluster.identity.oidc.issuer" --output text | awk -F'/' '{print $5}') +export OIDC_VAL=$(aws eks describe-cluster --name "mgmt-cluster" --region "${AWS_REGION}" --query "cluster.identity.oidc.issuer" --output text | awk -F'/' '{print $5}') echo $OIDC_VAL ``` @@ -292,7 +292,7 @@ The output will like below. Create the Updated Trust policy. Notice the `*` in `provider-aws-*` in the Conditions Section. ```shell -export IAM_ROLE_TRUST_POLICY="provider-aws-management-cluster-trust-policy.json" +export IAM_ROLE_TRUST_POLICY="provider-aws-mgmt-cluster-trust-policy.json" cat > $IAM_ROLE_TRUST_POLICY < $EKS_ACCESS_IAM_POLICY_FILE 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%0AS>Pe1go#PWU2EVe_)Y2ec z4J}{{XufQ0kc1HUa^rpmGd4|lbcua!8=tpANJLalz4_7N>5-9|m2dnQnvfgP@p4ty zdX@=xpW83_(enV9x~%MppIZ6t_8?p>P-8lo;Yr>*Cw&m#i|Vp7i$~kT=-97=;l1niho3^n)03Og=Q0&q>y1i0_d9%cmzBlK5lI_-o+b^-5o8qr_aUHHlyLA6 zXGx2?@~lKh0bk4vB`(&H-t_T=CkYyqXH8J+)Urx{7Dho``*Pr@uJg20Q&I8h4shL) zQ{E#Et-x=K2%mQ(8^^@&Ig%q1^jaObu6rS2h(j- z#`r1<*x2;GZFN#oRD?VHaJY9?iL=h^5h^J$Wx7`@j>mpzCogf7Oz2m(>Z=?n97N|M zh_Ocgx*e+&%qj9Y){f?l%Q&FZHlsolPQr{Xp94PS90qw{>gSlYJn_-Q1{HL2NTU!anh)x{^+L+K7J?4;-7tM}z zF3%pJHQ1_-J7X7@#prIo_$2>i5#{&pg3dQ}aB=uq!;fCu;>figK@HlO+ChkTfuYey zDhM?kY#^;I?9`}L)9}L+!w1Rvqe_xyXOGI$erpeglX6vLPqEzSS#>s|ZDDn5+%erb znbYJTAAcV-1EKxF9Qcu z8~SYPh|23>jGjhls5aDY*Z0Jq32K!>o?kB}&#(RGhaA85j5WZm?MSLD<}r8@nX#E$ zC%XqH2gMpdsQ0$cj)!Z_b(&&oC17JSwY4V}mcpRJz^UKd)|g$g-BZ(afEeLrfPsPb z_Txa4n|2a&1m!$w_CrHjp_-MXG;w#GbH~`nhempo5ZTzK5Vz=^CE0C0-1aLu5SFAF zeQj-R5|EZuGop++Ik~E30t1!OoIX9`gOoM8pKsxehfb|+ZJOOL`5=Qd!?$@gk=$d| z4W5{|S96HKNZD`~nq*fzNn*V8^~0i|$3TVn9#zkx12jTpE(+(%@`{8JL2X?(+qcnj zcQ-_GQ;IIaY1>+QXgm7q26>ft{`sW3QzlpoE?h}LE_-32%P@)lLe9@iO3aS0QJqbx zTDllndzf3qv`LKnd`l>GsfPP2kS#x3IkmM+pnE=iP;Ou){edGj;xs~88+kF@@Vz`f zjBu}wC~eUpNv_I*ob#3nGtR9&;EO}(x6wKXEX(CK;l2*jStxd^kM^h}EH>rZ?IMY@ zFAqDDL}T7>9zQ$omHGI9=J9Wj>>d01lni=;g&e#(A1mcW3q|iM@yFa2dVB59+7Quc z9>58Iwmmi^=I`eOoq27(QA(#hdA^Q2+poJo>djZ`yuaAXel;@U@A6lGihWamBUgmk z8VIFgV@ts6qlb-ULLMTdUb=kD(nNGn4{b^Uxcb$)ol8 zoZSWL&S5wH)WSj(;Ur4MTxg@s8UN+k`FQ^)aS0S9V%vcAayujn{8k7`BsM#rGV7N> zX0^tMg!)QvO72hg*B!3{P7r7#J^0)n`(pvH7tIEJHa|E~XxmFS7i+C~J>48k@X;}g zFBzinq0R~Xj(?PXAYq}fwX({jxQ_vV$XVw4D4&!T8Z1-6A@iD(sy2Y|@e!lqsb5D* z#8HEky!ki0sFWHN+^z7)x3aXD)@UE-YlT&PnJ71Nuy+VGi4)YHpQZ}c^o$!w3_ z&-PmX)+;yH+Up%JC$ox%%Q@NHpDz%odpW%L!cRLR6yvUS<)-OTU(4=3?6HqOQIo({ zFf+=QxVAx#T&Ph^2DL@FXZl!3k2_TthlkdK4OQ#^-s>^axvJJIps#4&SXlXi_vAy7 z4E>raYrQPdwm|yjusi!_{0(6C;k=0)?>psIyNarmo7qHdV5n5Hl=*z~WJ|v1}6d zeoM3A(fwpt8?RU#G&+g;iI8<<$lk@S`9AOyk!8`B3hItzBy09Oh|W^y5=p-#sd^x< zml~-D#2--SMxe~F7<5!~?y6mL#G+K=`P>g(uYiM6NMDqS*>LFV^UmXr$2+&ZjnX-D z=0nLzVO#_2R#F-oxY`7_^Ja|)UHXgk^!Fi(v16RCMHVB-ke& z0Pz3$exnQq21c=;8HzYwzpb51h;HEho2!H~h*Ka{$5k~O*;z6@0{pAX``0vsm5zqI zSL&7Xr#A{i#?BM*2lp@%^(VXIf(h$Wb!Vpf{Brm8C)iW%jj6->Q>e$$^^q#U0mE*F zzb6%&3?v&{yPhWkMON*+eYi&`bo4E>7S>WQe*h&Y%X3{D$x=6Cc1mGNOh^nYmL+W4 zC`a6PAk^|(AqmXo?eu&q2aYp<(|yr#dawz^f@Bo=94X8{;k#g=BP-hmVGuBCHBO^m z%t}ClMudBEQXL6tRlX@ zk6!Hs8kMVfAFx&qNQTgd3MO};rgOhAGxzA{0fhoBY_G^i($j`)89%(n5K8ICZd~*S zFoF2f1Y)5;AZ62q1{06L8R6rj0B_h;*+BZ(-YD1_7;$uA(HN+xfDAJQhsIFpiFRY3)%wDS+Z6 z&UfXz6Ia0+J=ImC8x@5#^Znk>rVnL1S-f*GOSU~0Sh?6xRZ7DQ(Tg%QpdZnV3s9M% zLyu8TNL3+HwYFC6z4{x0RF1hn3K_cPh|R_Md=9 zQ5e1(@2LnWriRaXW_#FA3aG@W8wR84A0m&ky}wS5@|b1l$TKnvw1k4GWJS-S@U9&J zs5o}~v;$5Q3&rAMz*3J*RQF7K@}ae)WMo!rWa6r}xPZY>+0Ez>ZXOtjF0SsL?)qQwrg<(t83fnQ?ah`5V72n3wCCjiU=QqvHR$Y=jILXfbn z$stvYPcZg&VHo%nodt2{p~S;(222e?MJuWr-&&XZi{iH%&8x#2>(+eNptG#Qg;Uv_ zZq(eE_xAR_f~=lEHpYH;arylfZV0T$4@6cMCv;n%22Vmp7WGa4Fb-FQogf%_nVIe8 z6jUivkX%N;U0kBYuomeqa8j!!K84x?4UNZ!q#(b+d`dtF8Ws*EWT;c18Ps~H5dqJ4 zY15~8M~uIN%AXxiquvY)JvBWMq5!c?vG;=3B8Eomn%-B~-+#!-Eb#uAT6DGA-uau; z{QD9oVpHh|TV!2OFaZ-d*s9wkuBlmJLRqc6y^*o$iiLVZ(0d|$eNMAo6mE0lzA|oe zLJkNF1xW4S`+es9YVYkjtR`}FSm$*!-uiXsPpyr6-TN1p^`F9*-{$%^@L<`Q;yd%V zmD*&)Y?RJ5)(c@MlnSl*yL^2KTERAu`u2dSp_GQYFL373tNc)sY#Yr1x2hFy!a0+y z9xavzfcKY74S?WdNr&1wJ60Ug<|1csc>#Zga<}R6jjeU)6GfO!ToibQyHer4y^xb+_p|ez)avV5RT~OKc>*Wc#m@ z^%v1DlL6kft`^MI-`9RVzwwsx`H;$}mXkCp*d?J%&)2XCaK+{GPPFyT zTRYlMqnmY)ia70G@`C)h3BlA*jE*OpEjv;w4{Q);ZU&KTkT0BY^`loqpE!`*;Vy2`QdXOYOSUT_S)~rRUh(dSG6E;(*b00O$D@P8nOeehTTGhR zSYs39T4d$dO(t%I12hhf!uL}8(>;zp-c3yxuz7j@3U67tQ4#p+M2U^;lcFuCyb6^o zC5KRd5|$rz-E+9bg{ln;4= zxrcZH)AZPSEz4w^wPVGxoKxX+GRd<3k?w&brH9nl-s>79;ATMx!O0vRPY#>Jw7t#k=XFb&9fJcSzX?T?o&5pm`uH zU4hraocMkI@lUG5(VFe8%0ngKpPza3KND^DcP{_B_2aM44YV#PRD+EOL#pHyqun8@ zA%+JiEv?RX8%lx21G+YBa=VudF%7Xqs?tDFdJ%UqbY zCo>LpfjEN;kaBR>`bI&9FIr`(C9$flmXPbYThHDVt$S&Y75CCQddJjYg-gySm~Dic zL09KnKM=;#40`Qm=8c#z+?fZ7miRUB2!mmaYDfE*O4bn_LP8>hzY}x0*o1bAoD{FA zyD}5DH!Gpg4_|djP-sn;XVs#ds*Pv}8e2v@^trrk#rl1azg)1+Zb>z3H5(u3#4~1b zZH(~co`u|>{m}TW1Dbw~p35v!6QL>Ry1eGgN7^BzSDc^i{;Y^&*U(MZ$R=BkEIBNa zrV{sZI1SlL_g2w3o0WGP{fwfc3ovl0hd9`zT!HE;qvK-}Ws@?IFg?-@NVaeYqMVf1 zScYMe8s^B~)LOrMnR?yjwJRYqtY+VICPrnQ4>(Xe71(BrvVAperFL5G@h!P6D#OK0 zI@BfKEoE|34VSlndjT&;iN#&0(l|Y2 z!`1TbvHkvwQXLt(On{54>(gV2m$vspR!vQ#%7+x!({H|TC>9n5OysOGO$*9%N>{xggb_}GbMi|}=ADHI`LDn-I;vywql z=5=i<+jw{GkL0N7AHpkd_fbdEs!ACem_rtbK=?9JzUo#Tn6shez!wx2a&U5rZ{Vuo zfMEnPxyU-%SGefZ8LOi{h0HqKM%kDkGr?OqS}gUnN__A;=y?)m&Jb+~ctYlVcvG&} zjIA?XaRT7rMb#4J^LRg}ROUi`6${d7^Z(Jzq#IF_GByQ5pu45v$!f&K+qJMz-=o$i z3B&C{Hnf5Nrsk5!6c>l=-l9;ZjCB6}&Ac`&QGpKxWGiCVkgMwu3oDwSz#KF8aR}zv z-=D7}G29Rm5e71b#Z78K-l}kOCm?tp|L}d zi{%3OlB=6Wj!9PvDe>r=%nkTSJc+@K1*iGFiQr0~;xnFJZh-oFuIEl(?LtW%yXyVmsVu4(sVYaLS-d7Qcl# znW9sqgN>f(F-nZL+~SZ3ogCy3GY{E1I-XADt+Y7e#JsunOHi=LazFOf?olJ)^Z2F@ z^UBoJ_6%My3=UL>pFM>PKEHF=H>}zp?Z|fgFbd1EZfB8sul085xjl}1yKk@Q23#{6 z{)wBaRdTX-^b6xYHOoWemEDcf?Ed*rbIqR_KX1%WUS|p~7827BSNhDie5i{rwjeT{ zwQ0@&J`eV}5+z_~AW&=^f_h_FHlBna?$=&!3gBHMTs@D8E2?p2Rc7Ev@D>7*Y^yS3 zRM0gwFrX%$+EmV_Y_vMyUx>sT1VBAk8pOSDU-v=W-Q{q$ap~1Mfz3;%r>8F^R*P0Z zt4nsbK|IKbs6HP_SSaCF8Q&g{`atPlbhI_W>4>VEl z{7BSb;!I2GLz}{Sx(+H0W4@Pa;K3hpHNdX3L$LbUftLJc+#bvw?bqo{j!~^`J=J2bUJraeSwK z-37~vSOL_X7DJ+4cuh$J?W-B02LzMED&tG}!E#x)MSY#3fFMwHuwBjIMt=A3{z>g= z>!G4pYzmhVgd`y6q+!l0F3p$KSkAyEe#F$K39AYI_eI0i5gfb8C(}=NO3{KM-XA@% zpKi?$Ki+Py%|CT_45BThW*#BPEuIYXEl!`*_jRQxRTV8V-;6ew#7UL89>}MD!IIqN zr!m0$bTW}kDrqz?i0H`Hw2S`J$`qA8P zym~4Whh&qb&Ty(NM-bxZXQSnc*-GLq|Kp1*SYpG-2xUbufY<;=c8UTmg!Z=6NNHC` z_3EB~dF~eER1ve-WYpSC>uP#(68e(&p3&z^xoWmlUNbEJXtcbtXPPoCB1dFle#2&RJ`qr<@THjC*=0)?Muyhv)k5v(M~B=*{{W!A35yH;x zOT{^GNU#;a8pOTkA{r2L*~+xdb7)L865wTD%#>k;G#LD({7yaPqUQC~ie5s4lUo9}pk1lTq+2s4OpTE7_2*ttgX-xIj$IcNc-Rn&2e2dCDxkDws< z4Ef>kfz#$Fhlb}n#BdZf=IQEdhQQ|M9~F^NRvyEWkn$mFbziYrx`3H4f{Cn<15FK% zplNh9gH>mXooLlU;!VxKAZE+HXi=l&pKOImJ}j7|fWJ7Iuo`h(y3~~sjaX+N5br`z zO6gMPlD!GA6z`@pT8q`LHbdil(Cam&xwdsir*<%NA?4YSfx^9L3TX|=66S?y2=^!} zvx$jgf}f|R#Y|QAmL2)QTC>wqeD}kd;8TFht~hNi{vy*$nJCj%1t{ncvj+|g=;OsE z)#KOi*|QXv+S0 zWe;cfL-ibOTTg{kH^+j4J%Ammp|1y7b|_n*bm<0Sdc6ZB#VBKl6`T1UsG!f*>vgG+*a8mQzBxPvT3(w@%u^nt0lfYgup zYUKPna!%s0z1pnK&;K|lXI2NXKwix<7y~8&rj1*@P1DJ*CdzY4Y2FJQura!JT9K?oc2kXB&>7lxglUCb> z`en#D!6BRoA!MMM#q;yf#o(u%X!et8c~uV>KXE`gx)aZ>PtxKM#dvylA5w?Nl~sf} zpOdF;IhQ`*a=TJdbZu;A>A>|>Zg#8QXo1B*50R^yy}PzHEAG?~t|4ZjJB&Rear+6~Q+S>Al=C8p;ueWkm7pO}3 zH*RE=6YQb_&zw8dsLe)$&v4_VwCC8?vsDzQ&9irUj1EhT!)9)(&GG6ukaYiNqyM-I z%|!{Lx2c7JEe9r=lT}NvRhWe4hoI1vl449RPOGA&?eFz<>pxE-s zi{w)pCD|v`k#CH1V`iZ#e3NHdRL#oaO)gl|jyX#B+@2r}rfqjp>U<+A?>cz;O1 z<^lVA3-)(lgq$*zTnQ!hr*6-GB>7L)(LjKtp#PVW##4eIINc3XQW}*?p1>J{UCRRn zU2&V=KU}~j-*YxAQ7D=J40M*~9ZggLA$`(aOi(ey#rWGJ02Nq;29}K)VN@~rRLgXp zkCI5M4T7Z4Ko35v*75c9Bfcl_wI_KaOo7>qp54SmlD$IIhB!5i#sm~!VYgq5hJIeI zyn?=o8sl$ydXu8s*g82~IydYhuZDSa4*n}2Xzt5q;M4M~Wos>g`a1P6QaL*&_-LEk zxPBgtlYi+W|9@MPubG&ypm0^167t`Y*uUEV5Z0{$E1p$7nXTFRV_WY<0wtu{u@&I{ z5n$}ykCH8KP@^yy`A4*1JST{v*~nVF9p4}GMwj%Ki0GHWO?3aHyD~tgD z(e+emfT>u}IUWC>RJyt@J~NBU!)Z8_Ma5u;rl9xaH~eb65ePsSGV1nBtxBfCmvi`B z7yO!%*qI~E$dD+s0LOU3xaNDm1fbWAkO7B%F(a7ax>Y?F=#+|=9y$5&w*$npfJE!= z)2m&+r3Fy1ydWsglT8?Uv8R#M02o0jb*4Fa291C<$rzz7V_DXwv|!3WI#vPv-|3SD zfi}v=E|vG48SHh}9dRc1wX%HmPrOs=)WT_NsQ~1IT9GdO_|#g6$k#uk&wcdC0iLrM zQ!DT%5EU>A1rfjm!eE2?f3z-%+zG(5&^YCl{|Wm3>&L<*fZT&ORsRb>I5Y#`dHSLw zFn=$+e%sm*%MSjPJ2GzAAH5@4mf-Bk@j60s17(fVgRuN&g~e)Wf_*gCzLJ~-Ac4F& zduYEXV~iHnV`)av}GSfLJlOHQ)- zu)i{Vc6J8XZp>DUv=&b(q(S^qXJ_P|y^s!vYQ^HLQclS$0dJVv44VXOqQrattloHY zc{$K2F({k9>UD6i4jQB&ub_j=@xAF|7`2K)J6GA_;_AS1O@cWqJNx22KsesSW2nkS zXtzMi?cVv&1)w`CJ7s1}`A^&X*oo^7Pw(M-K3qohk%UiF#F`IBAj3;PZ0>|1f0e9+ zp0}6+V@@d?`#dYwhL_3~r`3L}FU|4Atoi_Yo!NUON2?4#`Zq_kJw}&KV>Y{Z9&;Uh zNBo^F==16>Y$cX?yDRZRHKBRIT02?s%M8Z_IC6c_u9_Exng-tY&MU z=2EhNqltcXdTB+JkoJ`R^c%2I!lx^W_qEn;?g+Uzi2HUIwctnkFqyu=j-6ethda&5 zq)L%Y7PsqD_%JeIop#2uS{a@CtGv$N8@0VMj_tT#L~B&1z-Nnhx5jBj;$b*wE% z%3Kuh?yky_Q54^u-jZB7s32JU!7z5=i&^y2DY9Kug-A|3+SY`ZP-WfJ8~CSY0aK1iKWc&p+1oN;gSICwsD^J&x*n`vAJwqFPLnv*Amp@X?U zbvk{#KP;)^c|C{`aG73&)+pPCJhhz)ijgI2=hIc407p8nSI#vkw@B2-X22fTU{r>; zM_J;yXe2JrVcPjbM!WauNA4Es*FADh&Xw0^L^ym#iEjr4?^B}RWZt$oP3S%!+MW72CFL zt76->ZRd=+);Vj=J@?!%_deaCt<$x-MyowR@Yfu`lx{u@^>P3MTKmr(?bH- zYl@E*$0Olw^!_e62x|*n0{Xhz+FZTLZX~3JP643)S!N~%v~*&6(dQQz^maICR{gUV zR&!Gp*hRwgSjaz>hyvIbm)l9O5R=zpD24ej690430M^Fk_uyWIAM5Z2cY6=nKMmx+ zB6(3O(fd+BIjc)R%9WNxFSae4gGCn?i4hVKlAIbg@_6V++t4-uIrfxLrV?>`X(e+! zS;)EDUxhLDq1}0t1KviT%-81Kwebp%lge>D+u4ENZ@AeRRj$#*csGQ&#KFbcaWk^C zT=${cpf@~Z98{&*aIp2;ACvBvH}|}V?(0JatJz%g^P#nM*Zsh7Tv5_z$4t7+%zz+deDrq^tTN?_-iMxIHTDYBUWBOy0k0wBRuEv;T}8ysR{;1x1t|B0%_yFGxz(CA^|N*@-U7LDIH z&7U`^u~^M0M(Nbs_X?6Wlke`0H@zP99qMfuFJ=JzI?P_LA3<52uOEYs=E^LlGpgzj zZu#^ua2KB{pO>;vGfeIiIyxSlkW2_;fpC~_^GR6~$&9xdkG$~(Z*Lxh?F?pnLx}E= z7w)$e&N;{#9IhixW(*hF9L_xe(z-Gi0CrNtbgj$#a(L65S_l0z`Qy<2Qa1j%*y*60 z)86QPxk`dGSX1bb*%q^Gdq9mhG@%ar2uu;n{H!*!Q<1#kCBseX;gn zuj^&8-k`D=gs#jx*g(@r_uz6(?#I)2hMDJ<`EMJSh~u>mNTe)j*lboWd$aTmVi+Rt zZjJyH58KHzdK4aNYi4?_p%nUDrP65#5C~(4U48^M`_pcdX=NoU_&3&}?pnV(#i&fr z!Vjhv>&*>@$k0%$joS4-_)YBhH~T9D->iwobMELUa)Xt4e2pe6QfiuC_G)R;w?S_^ zVUzIKFED47FP2)?tSZ5pIQ zIJVb|SH6od7B(S#b)ZkLgt$2z>u+zX-=jvX^t15cDEE%8<7Vo>h=xAB(gD|DK2)=` zcXeEI{OXuLhW&L7rbYljZh~2savkt~{EKN;>`{JHi8h}d>JK&eltPKT7y1aijXHPZ z9~cVbcQ+HgVv)p7QAtIEM~IX4=Ic1U%id2EXL(h@eDnmuwyG|B#XtRRpuLwlZnA6~ z_5}V6$(y9Uz|nhGslMOMf>aks0nEWf3OD|!u>t9mnSb9TpDgyxShooD0YCL}tt0o3 z1h0|Rdp`38NoEc?94-_tham#b6tJd5I*pG9Zse=S=c=w381I40V$g%zn};6Kjg$Sb z_g8$6aBHUDzXhx#yg@|z+TJe}uWTJ0-pn_EhghmQnb2aVg7Dkh9F9W)v^+gvxIW)! z+g)cC|CT!0eDx-R;-PULSBVnC{e$1^h2fnmx|%uK{c0 z<^G24^66k-#$x?jFun&!-gM(lnq%<|XP_~LIdIJ(Tthlbq z7I_N`%qTjUE2TS~o+z5k)M+%cd~aM3N_c#C+pUf%yu3`R7@ z{;<~;PJzom-~&iyL+3L+teA_QhYxr)P6%eD<8rEU{grEdkxT&-moxs#Ieu!;|`qh6+GVFQWs@=3SYh#yw!%j-NGBuj&< z*teNkY9R+nG0QX$jC2|gkLK3x^A+Yv$`$IGEl3(J?~w?wc#tkFZTfBI;WTW7 zIg$Nv2tv_$-IB!$8})5~z>_wOeWT-&fNgK!k4;qmNy1;}gAZl5Qg3l^wwLc+=HswO zdR^tc_`1qoT*Rva^q~}kT=_H&N+~}=A0XDFCOX2>?8r)oXDkaJRaRpwPoctP-s zurFJn^BSw*yzPPDbJ;kv2XpYN;d^{mlrvEOzFxskfAAq9g|(8CQ-8~f#?Llcqn$V5 zE-?VKI_7A;1G*lA#3s-rBa`ss3<1qneq~5QWw&yBX4NDHoyqmj0~>!1=)r`>mrEoK z>{a{2iPx8xZm;QB!xza2Wg$bu@h%5%3^s?M+q}UGKASHy!+u}GE-&Y%bwLO?4g$o4 zosOntbP5HOp3H*2qNlN04^NE5$Q#+!)-{mTgZ4~ib8xXaJc*~I#Kzh^*FO0I)!lFACdX#YFlo1URE8EY=j-C#GGIVIv(z6v757hXMoy0(n_e1^8I5~ z6^A|!w^FCbDJ`)l4Gi0^YQ33M;*b#7I@Q|y<9ue{#GJYeO&U9e#+->+GlqGk-b}kn zhW0teJSlsk8_%8A(7>Q)mrQjs>uZeR6(1ou`0Fit&rd}u^j^)@?e5dT>>TF9o~>I2 zfEybVTVtW0q>__`qVRgq#IV3|G;i)9rpp0C`K=S04P}aNJxNuY^`Z1`u+MH?*gaU} zG>)LD4H3o9j}tX=@`*cbX#jRaQ@}I%pOgZLE}Sp3@k9?f@C6d?<>f+-;$o27y#QtN zeBWRg-&a%{hfA__E9FYfuURNA%inItX2Av&rfM1(-|BX_FTH%eFuF+HJw8fFjzB}0 z$Z2Z#+&AlFZQR`MA7+K)-Q(QUT!0;>vBycHG4j=^H*|yJpK)DQeSJz~HGj|{&cY3y zDm_4FZ=8F~rhIplJ(3+BC!_K{JinGg15joVvq+>lWzcP4F{sXT_fA!M9xmG-{0aco z?{y3|XZmcMunAnLvD}r?7b7-9!jlSiYf@@&4!?Y{KwIR$J2jndcXb#`Sa*LY*Xgo7 z8?8FtjJ=QogeU{qDf3@wC9Ef zi7D}27i9{;Jv>=?Ez&g>UUH7oH5&+Amvp!L8KK@s1^A~8(%3W*a2TloVz zDF1-I8&u;axFgwY$Hd5{qHKG_6PJ>;o+-}Wq3~1sF%SI996mCm?a@@E)#)NQYAngv z-JP+HU2*=iL!hI_uw$j6Iv(YN_XUm@gL2K%N2-fs_P?yKQrV~P@=X6NFz{TrE8uPy z{_D)C>Qum1+t)d{9Ko;cQlC$=KiJu?6OMi9GGN2Em;7w1Ro4PCd{~;W${A9-bf>p| z%f4Tp(*KMKW-j|wE7FnkdK8MJ!9%pYo)*I&cp>vlE0j*lo&yYWPq5T{@rOL52m(4L zbq)cDL{sYftB58xh%x?qX(r}3gbQrNqIa;0lk35k(@iRM^~%&1>eI}r?btMF36QY4 zD}nTt4bLneAK*!><6vJ^pqWMYgEP+R^p8OnP&`2*mOE92+E)2^--2?4-@=AHTQGd7 zj~kxuV_|uOkmFfh)u$j@FffvbHy0B|F@q+SzmmwQv2BsSKS*ehIrtveg5!#0;Bi=B zOwUdt*daLSo6nx7{GZlirkl|xvH*A6()hg6ZaxA+uDE;G10zlzXEd6Eaqu1?fS~Wo zTTYo^@uD<7x(uhIpg%mlZTIBLK~~y5+1UyJrr(Z3^$ye;3xJb)J6_})jKngERJFgh zt9MYDHumH1dP)n4=Ol{XmuJ$2wLr)LGj@gaA76E{T&vB~K2IH0sS;8l_(i}`#fgvR%5X=~n6c8R&mL}w_?~Krr4a()<98aq znOB21?hP^8UC8j6DwpU@#z2%&RWu`5>(gveuXC%mg&q4dY3VBn`Tg}C{%qHN)AO7~ zil!t`!Jj7$O4&^J^GW|bdrlXbf+onB#0N1ex4uJhKdw7zjS;{*?W_Lk|^r*6H-+OXDxW_H9Oeo#V|a`W=McpZSug z@En@ou3bK}yfV3NTF?=#c8x~H*V}FrqoZ)S-PY1BBRwvDZTDt!x}9;n1d6j;uGTMD zi||E=XdJA( zRXyUIUtx(dulLRY$dxKpR=r?E_gLZh~JL%0#uPG;Qgh>Qk~F| z>%GoPi;Ih?lu8Lq9^Eh73#bi#Rb)?r;uv4G(e!5kj9nmnyj(j}OKWHsRBwiKnIzg; zlXHY_2w5OZx#Fts(>2S`_5AKza2FZn}$eltxl z3CV-V}^H zoAtu`xc6OgOcI^8=o2=_ZnyJpiZNKfP8(dqR}IA+j=p#mZ9M;gs;bLURH?&p9hV?BCtqj>%%Yy~G73C0{W4yi#99k=0CMBAVS=u9o?(;3+G4B=EbIpgD`B zQsoiu)Z6t9T(J}RGZ_6jIJA?fKXv57D$D!HDdv>1j-XwoyDKh_;c3M)Db^~(fAW-DnWR@e=9k|;UUvP0ybm{j-<09Un7rJ%6VcK- zzN_ct?>Xz5e%I8*$wd@Gi(wo3%|tQ8NY-WYQ^@4qg)#WM$Ftp!{gDf%%oWR;)vHKBc3r-1&7+u@S_r(!BBS~TU@SVqoUX!QkW|Hi0sBv zq{A>ExFvwGd}q;n5Ogt;oT+cZ7UJHJoJ9&b-EMx!`E;R$DW7V%-j+;*8KrmUlDo{l z0XQumo2<<}nwIQ6JUgH(kSBaOzNhZ1wEGYZ+&4G>=pN+A;{4MQ+Mq+~a&iK$F4sBn z;FuN4JlAYxZjs_h8Qob%BO};If%3n%y)ePv)QIM}-6ME{Kmc(&U6ccWg7s-U?vH;Q z;V;;NEpnH$0hH_2PANLT-j^_K2w*8jN728XwF-x;;tHazKP-ASsYpncnx()tRR9U@ z2up)V-vaag&?gM+UC5Xit8nW-lFD0Fh*RIpPXa+VD|k`X=txKc_y-zy3c6Ba=~g0nyrn-lrZwcrPK z{`Dmhy}@MTtdgaIHMF^hqkfc#r2142Q8J;6$nYoID85o;FhEdvZe|Z$K$CzKe4|_#YnZ14@$sfI>)R za6bGapHKGxPbXbXeN3pPp~1bhO0V5PcA+k)?39?GWF^rw^zx4@B%VEnR9#p1SbDaR zEn{gyHjqJMTQD%OurN3}J6|B^CTb*O6=@5f{1@(qzv}lR91ym-xfpm56e<-zGb3Ju zqn<*nE!}^yWq(~g$*eECbMd_PjsHXOyAZIQ7{`CL{Ph`szLtCWV@LeoPyd;O{zI1v$hs%6@34Xc${dT0)%Qny}GWh4nUf7WD`QkTEc#= zGFHR+sADDSCZnDzM#}CV=qmB|r%(ZDXp}{BDMv+A+dUE>|6${r#URo-><1P{M*(fL zb=ygE=TvpVDz47_*S4+8b+WQ}TdcHfvazv65j%JeA_tC6>1C6XPgEBFfGcjML zOxppd*8r~2k3WQhm2Bnb|3GFH&HwWc_=#xnLKEXHe?IAKR4i&QK?cp`~SvU z|HflwV~zM^!;+BdZa%=N4)}Lw z02yE$X0*va5;pMz7YG8JS&6O@@!tgbzu)SD0o;`le=g)d2NCg5fIk=br9}L54B~?c zn0qo%$UpNvk;qZ~VZ5M>*#3vH837^~eK3;LfBtg*l0O0*s^n#ee;!-1001=h|G9}< zC1;!bA1;7@?dbovLg=1=!Tuj4*xezx1*jZ?!~M$aK(O5v&CSab%I?zH4ZP>BH$UIo zQ-y*6tPijO+h1e9e+}wiJ0A!X$%kWOg;=*jNq z52|aNCaY?wX;5;-$Ld=qP+O_4hQ>9-qEU{E?x}{gEh{Vc3`o{AH7+RD8t_Q|Y(TVS zA3Q{Qu-!UMYQs{e0=qc#`C1Lex9GlFC_XoBHNR+TbUh-^bch-?dhKJq(OnG3`;30Qaa7#P1rjY%%l zDcQI>L=TQoaF(b%`Ktm{iN6w&4ocPs*XFh>scTv}SXkXCht(xn0#PO!F=NU$e)B|AD)B5hLM#dKF_c$fvO)xtMhWl8k&qSIKG^wQ5w)s-`l~QRobOL_x+zGt755%y!jX3+0-QOS zdsKMrT-U;LC5MV}#2vczU;#9FZiC$jrY_gnLeDRA5Xc20JlK1~7okvdl@x584vG1al5l&mW3lSG5tZeXx)knYaVT-wl)#p%wu-b6;agIo3-<#j2 zHB=evPwJJ{6gn2g|H9Mshslt0f&hJa{VA=O^DZIYYFM`;(V-c$9av zr5QGFJb{-<(f~6YCc-T5Hc5UC)qZD=LJwBm#|;=9OTLKe9fBMyhE%mo zJ>o7~exg*B*j^YPg&tcq6o=Fe4vNySz&K*3KaYi|6g2~tj`Jx+MdM;0H$|hX>GG}A zqy{vSR}n5VSW>V*@}UuY!}8J~$SSFKm;WiE=#wLTvwOm8hLfAT=^|(+r>Ew)fo=X< zy5Y;DH@#QmLHl=ltod@&>?^-jFEX#46Z=CHs~hEN>wXzlYVVbz$aWTvD8RNJT-Jz> z=Z8N`oTrL7M=EDEkn0;8J?gtVYDU2*GNPCam#?{&lA(j{@H=zHFJ)}^%%1j)iOEbM zrnaTISeBI>?YRuisBruWzMUBe!ns+A`pr2#eASNYB4&VB{BZAptO#;`V0xoa^~DF$ z&FO*hM{u5xuati*H~MR{WMx@-%73*Z{75Ei)gPJf;O-9RnhepN;6m^39;Gj#?5Rjx zG{^hjZqGW$Jo%&$xO6ahvasgeMaat`)`cdEL|q0kp5`DfQB8eIq!8@%td}P|z`$J^Ia(G|wT&%eDRC7LIcL z3Kg6Q{CTDfKh1mL8zWPa9`9PYmRXAnE1xa)E~!pAQR85kJq|8tHCx$=jzxm>ShkoS zP-HU>>dkc(&vu!Lvy%Q64fV@>;kF?sBePzs?eIyh(hSjRG16b0!2OqpNZeD5YqSST z*US$JJ2@vpV-Z-F`!I=W67uI@4SftHDl2ySLks)6wMhupyJJLfmeM4e8-lyesr8^_ za%BM02JG?b7~0T+A7*Qq@}lypHp(vq(pL8+^565>BfMy^bMA|2Pg;pQ&4e3+!~G)z zCz?uLO6;`Ki6QoOEx5#DV%xhdZ6>*DW@lhcH}R8&AZKI9?> zHJ*sD{U!nuj00uMMoeJ$@&XR%zWbd=g{ z>rd8al$3tBFD^$8yVaX2rVcSM!2B85%-Do0b2)jr>wu;1P zO?>pu+4*F>PfX(ggg!O^1vyt#$$1b=Nr^nHx;fr+8`8LPtxr9fisbY=!-e=xPfyjuY!%^g!tqK*C z`bo&bN7YeZMl$yCHKb{6-yYC?eo{mU)b~T4m7yZ@4ytDMdQ1LCYbRpg6{4zwKo{lc zuW%wHI4$ugPPFrb^Er{S{Sys5XBO6&h+K{P4sX{-B(mtQk*r~OW-pt!i;qF%fVq^O zpYJG5Pa8Pz#xYl$oZcm*VJ>qvv}?Js-c|0E^I``PTlbL~bFHZ9n@xT4pd-oXNWfL@ zgoF2v&I2`UZ!ddLX)C*P66*JcaO9spwQe!;&$@)}SZ|mh??ggfM_Vj%+P|YG(9o_f zmbag-IjXgr>XNFF(;=cB-8lZ{D-N|k_vk~XDUJP#n{k$p(|EI#u;^Jj`rS2f6(y7C z8|RaurTjSV`0&2zJP-BUmGU8QqRU5=mSjM!^89#-VYJ36g0q_Dr%LbSxcmo^rtI*E z_9U{=4f^lBX0C-B8>%zJ`AhP@)R6xb>=wvoi_8ujA7j=X(sR1=o_)Ys)(|$Gf#}WZ zP9wLQ63oJ2zZpn4j{&YojM=-3SYQnigu=y^ar6dvqz6m^v^F3PMtgVrJ$vOyBtXDM z_iMpbs=SApoMbZ9wbhkSJJKN)w-9BT>#k&pB8S2d+I&Y=z!ovh{7Lje6pepj0#157 z2kVaD9tv8K=v>LmT=y=RimMlUZWbpx{K~>HnMLR^2VMe2Ufj2h6?`SS4RW*)3ogvX zrW6}M-y`-bV`GRSBpQ_#7arKrym$-Slj*+Ky95*$>Y?<_M$!7p{Ti1a_O7m7B=0q1z+Cn}ENz4!7;o$X zke(Vt+Z1QNEJ_dR8y4Bx!P_ZmJHQbojx0Wa;&DFhfYor)BT8Z9jhUs?@i?N4p*Sw)Nm^@1!+X>SjG$f=b`y z=i|7Uzpl!1T%BAYc0@3T(6D*eN`BJ8cAS@oR+)^19SwtU^AXvYexFtR3NSKa~6s*|9n zo$lG8ngDOjuG@l(n*2V3?BRGp(FbR_GAVVRF5jgFxaqk{p5-|eW61FeeNUA}&t=sm ztGi2F@KgL7fTMc^%JpygUWzo(3-ehfhU^mnbd&6zVSafS65CF{i2M)aMXE2zOME?h zgn`{C{`n{w*>c&L6nS=+I3yUSBo#md zvyB1lFD|dn*u4lBgV}+C^fh>5$O3O`>AIim1JGbhuuQ)O7+;ga)8bMxm@N+Er9XV+ zluW3}U=wjWbB9^@i>7DU12>`e7?y>KMOaaF$XVV`dg5M;#HCV1yJ8C@zv#PbtX~ER z_-fEwT3$t`aYS>MS0EtRmU9(KQY~3XO+Yibv&dzs_LE#X(30wpdiU^luYR4un-JfX z=d@##XBLb%kuC%hb=crn4cO0zMbH24--e)Lpaz3h6WZVwy<|^@*9Gy?D>kkY#{`9u z;4ZjW7Ra=_H)1+YI?7ANSocIDYeI%?1y7`~Au5t`0433YhB6M)xQU@p8@C zY0`b}K)2M_PAUXWfZK$i?y(g~59rAaWu4L1B+`*2CmI7>2-U6XFNx7+2(&e`5OP~_ z#?#lRpbR|}J{xYSULe~e9Q@rCIvSR9%={W+w$Cd)6D3-qL%}PFZlmFf_$#9JMsi8& zm)Nj;yGtMKPZ}MI`Dji_?>U@js<3t2T>189xc0ZnS&?o_onE21jA~-|g+-GvX#;x~ zM6Fwe(-Z9p#Osnr?*cdeH^z3;LoU1{{WAK`gbQ-_-b(NvXjB8~+Yz3c86N96^0Z|6 zgM06CIMMicSv!iu0`?sO6EnSx)?=UWkSvU~LaZbkIwepF5XU#$#0{03V;Jv?kZNy5 z6^Ju=Kt?xDZv5{-*sl6IIYplk{oKq<&gpFrav=8|>c)RKB^nsr+WQU(hmmANJNReLkilJLlc%sI-Q4wfYl5 zR3kXDybI|(1U?SOs# zzP@|u|1IeF==0WV&w|?>7P>Pa#!i=ROJJ602-e-2kf?U7ua@as;&X)5%GKYRfaoHE zQYkx_$~8S`9hc4lUr5e2Et@E(o_yxU&$^Zzz0QeuC2PD{5%@u%W7iDE6>dQQB4shB zFQ5UFVREYRsItL|yDT0Fv(cOR-}6ojA}nn*8u)b;4Z6Yq+y@_SImZzLs3`3caWK`C%BX z!8?R}5Wqx+SOycg(BcwCO-JO3G^Bg!fuRhR_g;zw(G#YMGTG zYS`7wh=*}=%W68ZQESML-<|x1{!F|+cROAP9_C&ef;{!yn#wUYA%f%qKJ_OU5qCya z{f@iz<(zChSdlrHVhvXp%Pk4_E`wsEXOXuBi@fZiF9k~ z=A@6ImyymNYO>DZC#Ck||LyceA_u4!Uzhx*F!+vn#7g9eZEFVV^R_cL#KFWQ6OrK9 z_zr^4>ENb};6z`s80A%f~wxv z8qxOh6xlRE={q zUYDpC*e%pI-%kqk`+TEW>$;Jg@`YJ|UoaBV-nIw9x8MA0zxA>Py?98>2lTQsVfzJ9 zaZqt?3z3jwg}w?9Uu52IO6!;hAf!UZ*SoP-IOS&Q_<3s7kP;gguTiz zu5Qh>`n` z{P*Hqzf`whJXT+lypAHF2L&FTOT-u=Quvg4HDtUCqLP1K@V*RFVgy{$5B@oCro{862Y0Rp`{P8gGBg*j#gI0uUug#io`T__RLLQ0a3eCU4#ouplr4- zZY#8I5eikUB$B4`CoCtx6uTU(#flCpov5eU{UVXM$43Jsshzv}gDK{z4t~z^6}*=F zh#M|B0w&K*2}_00Euj!(S@$LWwK^3%pSOh!6-Z~L%v+DW3J@6cq^bj?G0tUFrzQq3 zPy2n54Z{4C5~~TjUq)zC4%6@*;w1DOt@LF9lorHiK8BRj%X{Dq(}~t zfIu_T`Ii;feNh7TFhEGu8krEI&=N|?6aA>XO(^~7uz7!$nI9{j4}feGTx`#c)R8g6 z$$p{6Oa{K^H7u(N!g4X=O7)F+PGTQVObiF&UF7|8+CQ}bO6wy(>(P;Ta26HY;Wv|S zsu2CQ*Be-1oONG8yl5uDeCEuXT~JIbbtp%6Tjp9k3nXz=_HiF@=Vlyq-F#8boA~$O z{}Yr(yyUl394sgnWeY@&s7tjtEy!(v532$^BIn6z0>iKPJkVeAg$nm0h>3zDj8i6C zl5uSBh&3Sbt&ee)c-M-XUj^>%hLh*v+XR*!JrMOG=FDq9GGZFeksHEpw&h>4QIgh$ z4&!;l=uWukb-?FkMkCGGnrURRQb}`8X2>B(FCR-OUxVw&O2#(Ol?)0*HFW%2d}~oN zqC17qA(Yuz%r0y(YtdtY8ka>85K?sd`+>~Fn?yJ4h9^g%Wjkl{2IlkcN=9~QmhM=f z-l?HC7BK10`K;g;>HV6n(Ye8o4~Oph#LVB(GiX$1VN&s0pYPdx6EYZ!D>pAKk;p0GPe?cU)YIEb{~srA0vV8>(y9km{))WILBxUBCBNC zS2t7~pTmG>RX3y1Kx3_vs(vo=Q|qN)*~oXOR0mr;WJ+}=q;D1fIvR>8W!t|ZTdD5*xpI&%x%7BYV|F^hIz#$~@>hz8|0*xabTq#tlFt@loJ1QSs7 zGoy6a=eO!AtNtTteWm4BQtALX())5L6>G1~1I;d@&WQ)MrSI>W7EljMqPke`PSE1$ z43)r=*Z-}o?Bny5l6B`^XIds8lyG;Bpf;Q-Y@`d0+p5eRf1A4;w~bF%#D}TMDrLNG%FqYl(}cY+%00= zv-i41q$&oFCASwMAupKGm6tU&KR=km>~sF0FKQ=J5hMw=<(=W=LYdtf9a~ec&Fc8g z4}A`K+Lh5tgnf)x9jrw{gCk!&3&lTIeGC5SzMbPW*$Lg9a1zco>q(rpWRBpf!Ydku zCf}`4t8?1EUUE$0ySjce-9WyAe|2XUyw%)(TL*&k)I8w$|Hj;y5av(Irr$HzOn7&7 ztgM%oPlTgtbt|&DqK|?FKB?oaExX!NslcQFp9=xsO0Rp-l_bZf46>~l5Gc1dyV1}} zQKQ08DXW~$s5V^v3S4*|+=tRVZuWH7`@$A|WibXl1pF*PO);N%-C>sc!%Q8#Y!W8b zeZOj#qQT%hb;%sR&GBrH>}r>XIJV=dRfQ34%}H{wo`0U&{RrURjuhsp3a?`rTt9!w zZzCma+5TO^K`s9R@7(qTRFBjxI5K>`v;N4aSXvoCVt_%Xgi=>i{nz)um$Q8&fVrCB z;@C%(3$L=L(@g+JZcy*(%~!}ya*it%Z$~+zoY!Jovpz0Lja4ijExr~KLx9JmWELwN zcL8OJ_+f0b@H|(18iNAkHUS#CLnMqY&*`yw0b;af^h}hZXdD)WWYVL~0r{ zetwvx6-Qof+A^MKI1q4nn}rHE~bSeO7nC;0^4tXp&@*|W45M#H_^{ZnPg)P z?)SIM?>bUZDLc&DXsE%BWfOzogFzMA7|)7OR+lCSyndUe-Ad10cX{1bXR0_~2%ybj z>zq+9)2!3+F4aPot=%q=wNFW&(k>1Dkq3PO-VS?mJ@Gnff!qO ziqV#BR68Eemo?gQ6(ug^PD>Y2tlZwn3HOQ37&v>_ZIPjs6!L&8rh8d*$M;GllD$iD zD%^Yvir(R?zSg~37()-Xs zUSeeUF__SIclGq6D)d1>i3+3Zck1jrHf4&cxj$`lnY*%0tqMW1V)+jXgxKeshWh3- z%#>wLuY~kcWv8B#WIa>NOm)?(Um4XkjL5>&aYxlz(}oxvtD7MV0ULe{jUt05qtDMvtPS$wN(U;X}{iUW&H z^@sv{%#gn=&H6}AbOgaoc*?)vo?)amS4TD3U%bWgystw6ppdMCF9RRI0f3Adm#W&+FS2)_pOnit!~o_^$h#4 zE22InAwC*YQwD*yATZ(Bhthe5BGXTBT0oWZWT`JHI1`1_}$lD7jQq8)A`RrUey4jQX5Ftd!Q<=WSTgQ^~)7aFQx|<~> z%GoU|p-&A>BL>_h%JQl49+(sMPQW?qTI=AySt3RtXa%$E85B|(=}N~)#U@!CZa#AG zEL>X-&s+LsbY%fp#FbzqR?#!H@cJFaxU#<57+zM%Hw?82hjc94%fum$+*H6J3v>Ha z_$u{*zSwO%PO;W$a%kharMl~!gO!44hsE^!>GaD9dv|(itAtvGS4I)f7 zqn2~58P5VE3RPp^`7gJ2{>?S(J43E3AQ^F0GX3SaT^FH9G^xm?5JC)H3r_hPr^Dw` z$*s6)45}@MkO_;quo__21GK!XSB1lD`-&iK8lGkb5oSW_W3Y3D29(B#?PMN#(&El- zuL0f>T5a1;1~eXo?0R(+6{qWw-$w7`r7TMQMcoHNDEqHKj%I7;$;yVhmD}tp9^AkzhC{WVVt6?#JVp|Bda(?4P zRpNw6Ch}W6Tc8b$ElX!$I*-QVlB{xYi@=F7`V9&hZx3AIzy2tD6l@{}@#9B(S=guV)ndYv1({Op&;xhiL#zzm z+~&p~9!{;GnVt8Kcd+>4_-GB~c0x_q@x=l^3ei+pv0f+i5u{WXzBGLO%1Vv_NH!Xs zr)M_YBdZn3$okT@CM|;BS1Qnud)U7$Hdt_X8ZTO5yqV(w7v;;A5>ulakN@O1&okJW zYj1m-OV>)eSuqR+v{9~y(9OE3(ejfjV{QB!Fjx2YAJMe$ZTQY-EOZT+71@kGnHZvG zJVv*jtY!Z|p}GnuIs3-F5-XM=52B`ibkz~-a*JeS!(E9l6Vbyo8dsQB5kSk5;E7!Lm@QyX(KU&b`AI@a=mpdfb0&6l76{G` zcyy|F@pOqy_cl1?G=^9Ko*9C5PTz+iXCE9#PW`#8b7}Sn16mN9>}vFzzD<#;(b56x z^(zwn+Kah*qa3VM%pZRNrT?EpzOS9^9|uTM8Q3?Od<-H_0~B~HQtfc8BGE(VyfhAu z&2F#@j?jmkmpP37lA6ltS;Wx{KVdm+9L&|vp_QAO*dKeS1tP4OjOjK#3x!@t7MuGZ z&GX$|13$M|l&TUSV4+X9|bC& z%fL1Z{GUL7{G4O}m4g*dT@6;un@G7UnU>Bz!Ohd8GLI;?2oPmnU=xRx$Sa!e7DpAo zk%VkQeMJywo2_Je_g7^|DCkwMP$Kmikbo~)yXI4in$lUk= z>W%4IayAcJAUqeZ0;OVy7$>f}uc?}4`?Ev(9^BDQ8ab$_$nZQhrr{mA0O^=MkEEa| zJZFbUStMk&0JTW;7)ti<`LTbMDGihUI2kwt4C5f*B=^8bV^1CRz8yJFgs3o?G7HvQ zyjhf-!jB|$0IKP2YEmFNHM}~4ZN6>Uk-vJI%;`L6^@n*T;~`^mh)}upNSGq=ZM=u8 z)Npfuk!X!^dg?cYKRxT8Zljw=nE(2?I{bQsgLO$*!mID3K(h?Tquj180p5-vj~@*Y zo3=zOGh#~HK#jW0V)cY4|9jlcp?!(>w{*{+(v=kcy6n}%14TVSF;7cBE-UBA)KO+& zAHtxHFTN3u0WO#Y<%}9cTF5^wj-8}2Ub@bG=@2!5a!*ePI6{Im_i(@!vfiVe&fifc zo|M$Yt{^}v7RQcMZ$9GN*{Q^Z;z`Y*6;%%(EN_9DqH*{oR(+*+ zN@^;bOJ6d8;%9#HyOgY$Wk`s`ONw|J3tKhi9nv~TR`u18Anh$Phu02DV9MsYU0l_8 z30oZoRwmBg?s9Z*->hF7fCb1l#fI2+@xs%)N*&v6uX$`*Ea!7*yJoRV$;9o#uRveh zbF~|WIoNoH06FQ>>*{%K(-`w`Q+cB1Q-)6U=Ft+h24&ZL5t+dd5)!hu*Cn=L({^vG zi5S2Kg)Q}cOz9lIcyyW(o84Nc&TICV`S1$6ba^P?+Cf;mJs=R!j*~^|8HR+E+?-Q9 zzsR_oM*VRz@}nYFYIEVOa=m*0fARIsVU@o9`f#>wn=9Ak$+qn#H(|0?Ze?4OZJU#A zH(@en!lZY7pJzXN@87GxI;!KSYu)#y&-pp=abW~&iaUlEOW!U?GawvniipJ`7JR@q zvaMgBx>e)##Wkd>YYbsv+kmFMYxI70s+({9;>wps>=||Is39}A!_DU5;^Jxw9Jx7H z|Ist?x|!wSOnx8M8*q;oe?&c|oQ3~FRnh6pP-4wBOHz`75~x|2^2!SppD$$8?4Eko z`j=NZb|wUa0tNx{a}dUp3S~lqgPr+v#XbX3&npq7l}0kbBTcL(U{{ur8qc(`KIjq@ zTx7nO`yItb62!}+SXQ9*ofeJm(|TJ@gjYKTnt^(}TzzcSK@mrc7-iDPxK){CO$rD( zDYl}zQ}%$VeKfF zi}Lp(=*O!e_|%{K#q`?M+m;s7)oH^k#crFNB?__GLdBl3m7+Y(q2mI`X-{x4sDE4V z2N&P7d{4&_eFX(WC58qAe(f}XWaJXnE)p>z5h!r&vU#gD%CtR7f+}1zHE|k4nc*T5 z{2nfzLm2}fE|=GPEM2Xnjm*Hm2Egfm820S6YH=Y1sjju!n;Z;BH41V;h$5BBpMc2; z(s9`#eZ6%sAkGGh?SB(< zb9N;kmYcoR!S51rn)^vwTHgKqA=XeLpJ~2hlAKB#4YH-&gQ7^=<}mmW5nd=&s!8F% zeZP5!&T3}zxD00>n5skBD2Y)4(q4@LT>{t;eOq zprg;1&V=PYDs*i%1ozOOy=BOh8Tc~i7p7Ca4wkoK)A3vpw1Vy!DdHQJ^PMII-%Qud8DV=~hZ^G+^DgaatDk+Os>ZwVX<#G4ICpU9X`UDP zw3YFmeJl3%ri_8GRZ~)(z!^D^~Tx2>8R4)`RFkLV>+Iu&;jI2f*OL!#cm7XdxC~d|jxKn5PQ67WIP3 zf?*d?BpC}-zz8}Mk5h2d>JE8k?Sl& zggiRZm|#AfUXs-F&fM12Qy1eaU{OOlm5$bw+mtgS^!j`8yoY(nWi89+plU))oE@9p zM*U@=nvpSyUS_+Qmxqd)020PDjmPwKZTrPO7>BeXf|`?N`s<;c)<~?i5@OI zgPGPOD8816hzH8ti@G4tM|L$@BDNit%^3H&a;aS9)TclyL5I~hy0Yt`w7@B8Oijab z#H82#*uUU+`bl9KjH@VX8`(-UL4Z*lQoq?WYckRnLT{)0IHpL*B}P{7yw)v|sYblw zcvh*ga*V|>(LKR3agHpP!}uWonmX82s-j9Ku3n*yL-U|7yg@+u{N)nHTa9By)x0+V z;LiYSK;le(R1q~1*;8R{A#a?yibEk!NXT1)Q3gS{T=ByYp*&Auf@ZtksYXOUTD8PL zPU}0HITNAn;^_Fsnf55Cd#W5|4_kqwjp`t_6r>YAeJ;sEQQ$Ab%ySx^h?(8G{|hNb z)=J6!8mc6SP&h^MpIHn6p3Hv!Fz!D4CVg10%(oWyqT(@x*+j<3ZGD3KK(5gyJc&RTSm&k*^CAfFH$g0Zk4d~$LsE{6Q#Zz3< z%4p^S*>ueI$>RZv+gFQav)R=jR231McY2ZX=c*?nz3vqlU{n0JMfD(s&`mi<2wE^s zSvX)ipZ!}~oTKmCr*@Bf=^q+2Iw9*d8rgdHczm@cn^j5lmBF+A;N$OVr=!MxKV(Ax z@(*H=@L(06^TWksx+3buEWJuLuHOq9lSX&O`G`W`?EB%jeh-S%@uHF{Ghl+K^Hpi= z8Qyq0yha2bi}9_*vV3;iH5?1U+rvxA3s5FLg=fHOI&)hNr?S%Tnk?6Or&HJ>?J?K) z(d<%vqgZl`msQLE_d8HJmC;CDY?`k6nLOw3i>#JJ$Qx8R2lJ}KT9YUQB+9A*cSXL4 zk^WI;7GfXR$ae0=H3~}rM8+$Y^8Wq?&)q#7g-wm0ppwg!nt7odx89HZ1WN{`0ZbG1 z-6`TaVLO02nn~=@X+tCADwQ!N__g3HXOh{-e4vmHf-CLm)BOZIuWf7#CuGI$uJ{1Wb$a#v{8LAzrScJ!|zC z%VQOMpx7$W32c^b4h9>Y{>sZ0!dIo|I$;%Y|H)qq_R_f;ED7#=kWZ%L$%6wZN)RKX z#}kO!-IU*IIKk{fNdmt7T51i8@I~CF4^P(M)e5W9si2wsya#qBQ{^l-sS5zg^k#bo!UJdOje+aj!o z*Xr@&WVp+SExp%$%xZ||{=^R@&?p#7v_USp*@%1Y!hT4()%Zn17eXnEmrLTW`=vft zGWj-q)|G`!m0kfnZT_4x*v-=K%?EIIU<83;uU!{HjHi;}wJov{0fA!<%q*;2_ewEc z`gxmd!|S+S=tsVPTN2vo5kptLcGc5sOK;0-B-lJEh>Si&NlpLzYMn7~M@W^^`)_p$ zqq@88CX|_CtYME6mp(;a=-vyHkB{cz<^9$6iv^uxm)Eni7!BD51~_8cW@evy44>8H z{v^fKHdd_be70}j`#^7$l+byrJ?goyT!3uctG+mwTKxqaXRm)0%WEzxy4?o2tJF6- zRwUGl+?Uq)u}7i=i5Av5Em0*7>*aEj`cb+gQmkmq~l4|_7Q5yFMC z5w|tpUlZ8$vj+p}jgo5J>;P8R(dy?QDv3^a4|}blO~R5%)aHuT4~S`lR!Zmm$79Z6JcX(`iJg#RZ3!G9D_Ru!7Mq-xWi_pAGj)+^p%2X!c(^qDFujeyV zf)ffv#kty^fK=v`w;Gji@DcGS&x(jDA8tD>dj@X-;2b`S^BTd&+)w^!S>z%@?geaA{D`tXeAYkj_e z4JFlXUtm0FEH2+^y&2Lj;PBY-qn|=c$weBbnplb5*4`D5sfc}E zuGGUV#sP)Rc_HDBN08Ia6xP6nF5njEWBa9W#n)RA` z=4vZ!vPPeK&=D5^sUn0 z$8+@09U?!1@WEfIy+8_tQDBd+Cz46F7MEVMoWI6v13n#<$GmK>@`q%;dPLvZ;8 zVU4K}Pr`ou^{?CNPr2l{Ony?fau;Z*oyTibZ5?zn5jYVB1UWC*0@`?z1@tl(;iu#K z^g1cntL?xHR&YqwPYHuz=En^iG$#q1(6KNK30=R2{{4IWx{35ZVm0bz@{o8EBAYL&lq1od2mT!HOV@JAG_c1XSO-o(Q5+4!}6@ zC?oxMr2|2E(}F2m&&xx?P=Zc`XEs_IuE8*c%zA|z+k!@|?5Ks~Q zA0J42wUCnW6lL^VeW1^eZi3l5yD^5E5&W=ZM4ztv>QWEG0qSL$5F&O_;6SXe`_zgg z(Rn1&-zPwe^syWDR%5NCz8q>$;pqN89`il~>m8f$?mre!*b5-Zizp$`aa0%ZbDu2b zV!ArWL|x(F7y%^x3~c@z+=KRtt<`${_zaWkVIE<(tiK13`ff)=$n!JfnMj5F6#e*F zwH9hTCh1h~j<*FdXxWW>;mk8^p`qE(o%*PA3kO3bVd;7`sgb+O52^&M1qL`r2J)1W zlCtAXD5P5fUIVr;ZUql7q^EPGw7Q>jh&~k@xLJ+dS*2C$#;`yJixd2`D2hl;_4ren zI;Q*=np&i=@>|`E%S#9#$A72OO~n9Puc-3wrU&UWjD%{2kQiKk9LJ2NH%g*+Dx{;t z#x*&Daj~T zv4E|la-rUnp<`ymw&V~gxt%S6^lC%+D_l=uinxI%hE(RE!O$9qU+VQQ%6XNY1|h7KuJ;g-H~^2pu5uJ z$6tkVGaE=wH6cDuo0+wfwtaD#xF}z3q{;rRH10etd%hnutUdtr#0shc z|KoC)lnAfjl^P>xjvvYNq`W>@LLK~{tQUJZ=e|=?J9BH;)Hr$+plPXuhbidTQx*19(KVyWV(Pm<*H-MS%GQ!8I(upAVdi@>`9)|RRL65|QG4Q6c z9A`)s4|qQ;hh>q3bHL#-`O&}M>W3X0{2wm>Q667#9<0xhUX!&N5;aJfzE*ZMA3oB{ zkOHMeixcfOr!t(9miy;KqS2|@_U|Tq(@QD=oYVmCa!1+O{J!Cns~O=J#7s*ck(w%R zEsU#@5;Dww651PBE^FVRw&vU3rv4|l!P9{Zo`(|_XYQmTHdro8*}4e^x~@Vavu4C= zxYIfb@M*zoJV-Zl{;SER?rF?ZS0Kvk-WSv}KlR-s9_O9!W~?0ts7MYrbP}30olqR= zuQAieDIqD7#n*Rhq_2*IGvC+Mu8!s3d;;P-i@ z!DILRbA~%uAa4J@2Rn&>Ljg!1viPoiNghf{NXGJH8(+boPD#gg@aX&ay21i2R_XU4gw>qEqmP8MDSzs_I!N=1f&g|?>b(E4?T99a@_HlX@paWIxE+%H&MZ;358%10o^Jgl5!}gX z4YA6LZiEVVSyVh^Ll;8zc#j@3g5hMGK}7_+X5w`))>{zr8TUHI75f9j+{;II)HAqj zGqB%k1Rp9#$b(+F33z{V~PKj+hn*=P6aLt zE=-Epr$781PiJJ%WJ4vkL4MRYS?C=fTGz;St6W^y(&oMBsF+^S;A)zrk*Q5Ca7sCy zZu+&4Zl4;^ZOxD@!V2o;OuGxNOQxg_%olRX_*xLcfr~hN`cK~(?fiJ?aSno;R& z$$2*y_!e{ebwF$=agp%XLMd9Ww?dUTpR^7^H*Tl_cP+h0&YAUVsO*h)Dsx)czM_{d ze|5kxpJzn`s{jdMlz?D8oQ!2*$a8%(tMyeo9$S!vyZ6X2H)B4hmi%wfQROG9_rI~G zj5mmor;@ecG#ql#zybGO~l z60aeA#!8jT6W@)@yr^~^r|ZU4e?f7<2~!GtRVCX8H>Y<04(mRO^g8j-et}LDRzoZ4M=sXfq@vS#l8lh$EDF%(TFrAjO4vD1qXGomO4Q zpYDlK0nbJji%)x3F8z56TvX@Ti6mMsx|2btqs6o-u0K#oVm&(HfFh1moze5w zPnk?mrIwm?&WP=;-lukRz3eVS%I_AuUItrvdoiiY7$;uTPo5=6;iovSkTIG5mESTc z*9SkheFW)1SM!vBv}-EDAH!b|xB{iV>pMamd*oROqmh036gZD0WRS%R8j<*N#2EhH zEvE?t0>qd)!;3N;_%bB5sTKupzX=2`JThyw#ES^lQ5B`;LKw>sbRs&SW?JG&SpEEp z*xw2>P6{APYJi<3PfbonnL%ynmr*_&2Y$;|o@&l<<^Z@mY0RM*>ybiR20m@juLC(n zpg1Oaq%MFvRmCCK`J3Ct%;vcs-C~s z7@xE-J-*hr0olb6_U2|*&=$QzF{3L-ZS5CAjJUCld>Wb58JdBzhaRBn@4?A#I@BJ9T_L&AL+C>%ZgW_j zW~TNCOQuyqqAzywMtFcxRs{Sat+d2*q;SmQc3FiYbTOXLq|F#aM=oU?$b#ddtJJBg zPLU+IGBR^S)9}`PIgI$l>!Q=K%LkF)9)s^O!15j35F6BD$~lY#jl^^oam5ns#n;`+ zsN^KEX=-M~8*`hx)>22;~R|s--bNgPVtmtde1X(vQ8E+gksCbG`;l5ot7;xZM7*@YhP7 zY>Z^CF0O}Tz6_|~?t640(D~EjuFk#{VL}N1c;+HuS;yCDY0z^aUd=X$4FBqm&|VfA zn_JUN3jLWqOjP7y@DBDO!$tc*`#Zo3)oV0Zfv6#+rP0Y83au9TwLYj|Nm#H%$ceU@ zj|HRG?EWE2V_B#=A@qa@W^W4N!OG>Xa;lbCTT6GmK;)(sO8#@R@x}fwQXAzJLUTUW zNQ_~J4=SF-AQYNA%?4a8EFFFH1;7|P7D)#Qgg&E?UK(7V(GMHZ*hrDF@%%)d@-7)V zsLe_=)RI>DE1ITbw`mrgPKe)%n=AeEGe>*uDo?7<6b!^<%lUxkgQu=Ayg7hp5K+YU z0qWSug%p*&b)vhJ%of}`(Eg(RtRL+x7_2W;#OJ(?*pfjRDWS+2eSKN%k1)PLRj}!h z0<{4EVeB(m&5D>b7nLxth(RVGbAy!zS0w7qkXq7-(rq6Zp?j41#0PP`N^*I41y( zX@FUdV>I;Nt*onLiGI$6`+O4#mMlStNM=$s7-Oxv9Mxyttc0jej)uF--U)T++WAVGoXTK1NK_JO}1_iDzH_mft!%P zPEmO|!umKz?O3m=WxK5c-s90?PX6In@BJ>AD|Ay6U}`t(iUUiEXx$P8w7jk&VzIUb z{X2)*ME-b~ev9o2M3eJ(I4y`g)wmq~<-l>Ek#oK{MH)LYDBw=lkPNLq-jQun;6!A-~rC*D$EgW2Fl6YG_Y`iB0XHH zrQ!4IaZT4=7QP{L8Xi_sKCn*{O$+txEpoGLHV6~-Y-QNS7(~^7;JDMOFnJ_SfR^u~ zR{Ac0uedlUu;?+X>`isEiTb!703U)zDgar<&5~(Z;-!!DgOjXe&l|r6Kf*<|ncAO^nH z7&H8kRJ`aHFF@m81?M?1sByiVE`VtyWk39neel5W76)e35!8qeI7#~QkQ^adLg=>` zNsQ){H_4OztdfD}fB_*MJ2V%9Vd};KmbQr79wv%k&t8p~!JarJkELw3=Rgr|y$`f) zPiHHBy2{H0hJxV_!&0cu8Z>ZjG(jH9Mp+MGf6Fv<>XO}@HsX62xA7UbVw%ld5phV) zPSP@^V)li}QMKp}g9QexrGtCLdDXLvVol}Mh&aXG4ZM*}BI19uQOO@@G-|U=#nMtr zshF4;6578#EJKST(Zn~JkRT9YUnIuY#=q@EMdV&QU#;WF`TL3&qHa14eIKCFlC-=C zXNmyLCst3Y!TU9GUl8z$S4GvbjtOi6&g1nmRjKzOysM(MU=>+0uMYIv{dgthl-4T0 zGpGEqv|jOb;1go=Y7Qax0AEFtOJpWdMk>VJ=j`vXYFfI?H;5c_QC1@^u?GuDqT+p= z$jYr2@g@!ZghEI|#|q0u2OdhPb{<1s%7e$ORud^-t&vDd52PII=6y8Kxof`GSf?s( zZ6f+vn3a}1R#&u}IXYAij4)_r+L>-_!sDyG@FrG@)U5aS@vL$8mvoc5ESsj-*%e_| z8^Oir1TA0fJ4>a#e}UA!+N)jt%MJNduPrgD)>D7*XF^q5u5GyjV{sw_(y-0jmWSaS zV+=rqn4)lE$e;X8l^dfXLL#fnT2z0rm*VdR0zp7i%1IeZXkw`d^VWzvVGh}sBNNr>P zwo99O(UpB3=0Q&f-s2nHM|;ISDk56=;XY1es8bCL4@cblbrOb0y6PayRrCFReMWvF z5%7J-x|nJh?U;&NTs0QStV9~mDnD>7uNE35)6JDN_>>1X= z+**ESdWIpH=adAXT2xY(I=E=&Mz!okc)vp%!~v}F^beM3-Ai+-YhjZxvE!jB<&q|u zMtD4}$$3qMbs1(*n)0w2Wx*v)P-3G^J6oSwixg*So({J;aY22kCq*FCLr%HR%0`HLgRkN_98LMdGLd5%zmzM`!~Z(Oglg zh!A)1EAeWViZ=s;Anb~Kj?0%mOXHh?-@aZsXLUESh<*_#b=dzvV<52*GrM*jg5ze| z4I~khejmUUP#`xLwbtbwDx2uI49*ax_v%JZO%duN6y;}eQR3v(hKj=**j8c6`oxZf zy6!qabV03p*>U$P+C3Xdclv5DheTR8+W081F*Di0yOnO_uVEPG3scuY2TK%UPOR6wXn<-;czf_r&J*&sUwzV3D}6E8JD^?=pxRtzO7Ly5Jxv^&UG~ zBaUdrQv}236Q)|u6&aw(Ec;hB0&xNUwSh$$aNa_<9-s5pUQD^tseHXPwjb7c95nXd z3V;1K4oD1XoBXs#(In!tqQd>Ee3x>rCMHN=?-NY}o%`h0O>w1f|jq zbIJ3DVYfUv6l&m#tSJIy&vm<~HI>Y{Uj`T8h~gJrU{GygO##jk*dWNq>TIw5SC3W7 z)C9Y;NI~<4OtR5^plsNMJF>B!QIz|jUl)(lL2-!wxq{=2kEy6{7YnM#*ZsYDF&G;8 zRfLuONL~z~f1f+Rq<#>`qfr&JBwkaIo&-R}y@jslO z|L$3Xe|UpRoe-2kq`QnTiBlb8R?Z7GMFMvr1JXlHGH11hf-FX%_GmX#a1iA&L`*kR zM0;J5)!`Xz4^K5`0n3_%q4gHO=4n0Hbz9YA>20?w4hPShRdq^l3&hae@OZNF>ROF8 z!>Tc>b=oSIH_!7Ui~yh_a^cYT>ckB|pm9mx|NV~tMF{;5FSHa>7SNQR(Sq2-4Sv_b zx5!=mTjg+p{eAsJVFqOkAUja6Lx1YkIT{@0-YfwZq7 zgJFi2PM`l7vJIa(ie3M=pq!ThVUoaSs;Hd^hHI0Ph4?^M+u4ooO5jEiUsYk-$1-}0zIGEr-d$Xg^rM>`ZX!5TW?B%$4^pJUIyX1l|!_^GgoZwk#43sf*g2cgXEfQZlV>9OjlbDHSdCz1#)tD_{ z>WbDH7)r^A(=o+2u>Z|G``@$h-=xa6II)n13NujDz%b1yPFPoblqP>gFwUWN3NH^F zK3AkQnmx?Nz_A>nZw??o(M)9Mk|`d{O_IF`6Hsp7Wk5!bbp14X`aPTnt~A1`b;fvl zv?)fbmFhJkdjSRnF6xk*iSSbH%+3d1GA%<6&fq8CU6q<3lxG+g#>+KsXc{wRQfoYq7A}Oy- zjs!N)MFS}AXBtn)lbQUGUwGIvT2s~V6On<6^g0D~KFWxDQ&Mp-qtaTE zPl)cmvfTqU@;Fgz{K)DBa@Q}5BSSp!hCG^D^XP6P9&C-pM&eBJ24_Wed#`=! zipaI`y+uaC5(OE7EvjrG?tk{d|8uSMLc{RmCt%DhnraL= zD4D-hm`O8CU4!;%Os%m|(ZUHAO`GaIZS+pa8j12u`A8Ae1H>^nR2>ODEYMeikp%aq z4_H_nCRTVGq@TMFs75hnW9`2q!2X}({GadkvZW~o06cKu zbGL6~V$TOIoH1>FY8&NP_{UMcX(kkOn&3O-`@QQv36r~JACpDsI`WCNSa3gFL=ExC z-PbPM(&UctV5T&peZI3d*|M88zgYiC?;_fuVnic#_A@%X8$4b?AtGK*4r?BP0A+|Acln4Op+E)rOOfi?!d zG$EPUaRM0KqTGh?iKDM`Fj^ zVkE9*NEr)7n>&`eW^XkYd2mVq*LM^SoXVXh^b&GU{C<2#?Fc!*0-bEJJZoE=<}Tk!$hqF`=bHy9zNS zW8CGiNpU-!*Ul+3IUtcjDD0EsI&BQRX{aqwIOoEtGZw^9-L!@(a9rr8T48$~%-5G} zUzcw9^B6YJC169t=Eg3ZGCt)bu1| zDMFmj;Sp;y1SKt9n6Pts|DPM58VnYS#t@4_zlUj)c@+;~2EH}W{L7ag)ut$J1)=e# z3P6Tr9A3t$dzTar9U725%so}9_FktaZ4m54^t$%Yy%Wz7O?b45pj!vT( zfoeYzggCm4E>!7(YA-f)WFqCh{!+MQtDHn%nT+q&7^Sj>>u6r9EhE~2~*VX^6fq3`d;eu#jpMVQ{>(H z0{3dNzeRU+aF@SWbl<&i4i*-g)fx9G=d)e*8DaeTuNNTe^3P2@e4g06GA)>SU)61a z8vMY;rx4VX;|VM=cqR39&1)EV7m)7>(R6q`Q)M<>Pk1QoGt?DgTz2=RYa>X_xmLh`oW~Lctt`M&9Za_z2lg~d z5sOZP4w?DOlqtStk%g(#KzPD#uV3w^CqN)((jRyw5 z_us7~TzdeUlq*3No-5;8ZEE3U!1ch8rCbt?O5Q~=PgK`W8LdR{wuKKflhXsRe>b0P zBxB9yRh_cm+G??m7AxcA7QuJHHBDE*l zKU)b%yM*k_($o@vOV9NbGPgLabS~=CiA}v8!Q+o#PQNmTWpKp8bgX-GTMj$g!PFW z8#RDQ9QUw&%<%o$Lqg(_cwH1;;20sE`Q+z@=>?{#Z+^z)rq>An&CA@W1T{3*s}M6%FqH zIbW?LAd!}o6!LxNWD#PqKUQp1`z3F8KS6*}V+MrQ9-oO5L6O&Fzz~HYxwus5!WVV_ z2?G}!hV&CVQzh?HOwa;%(_ZOBHxsfZ7YRsWl0tH1l&8g^gPEePU!|vrXgch9LH~ArU$v*F zPkZr=qCDV|2rO8@zn#>s(Lp>VV|sx&&TioBs;G@j@V-63h0P0?PUiArTBy_bqqZ@w0+c$nU7J7s6Csxd%9 zF(VW5f>~TjVN9Crc17$@JG)J$&*ZX7G3vsfH5sO*{_$V+PKG$e3dAO8>q8ik9k=xf zi&`s#5(E%}^d8FTa;f9iZHr1Ins+f8FwY1>%0Pqh<~5VBh|1I`@bp4CRJu`dVfZ{c z$TVd`(5NSf-{i?+j{MK!OsW%S+ms)2oV+DeH+8zoK}64hjT;3({q(3e{cFYo+~KOj zJ)S4@vQUFFDB(6Fu~a^~w=0@XO!@+#lVMnufX0(`Kxs;? zlmsTLXiVTsAu|{jW^gCMSTDDdxd1D3qFnDpb?U%0no^9`hSsZlw{$Eg2fQ_4M0|LB zCe6>=MwKLf%nJ{^>D)LPMVt@+GZQMrh(G5`4jc7obM4;eo_zzwV2VeCnc~f*U`-a^ zMuYDMSapX#{Q^BiEE^(lwpMI%Tg2A)=Q2tHY}E+^4ghz(0&6sNDC_OEk4d{8D8Igy zUOrh(=eTYR&x0j^;<~aMo9oL@gTavkqs-*R5}&AsBW z8imaxWGK-b&1U;9&AopPe+U)x!@Q|HjgrX;+ykS}Pvi(8Nzq3WrtxFf;BdT;4o`{l z5sWsyLmvb_`|XlunW)G}SzYl?Jf@p-_U%!XJjhO&NS^9Pi)1(tKWMa>yuR;&`Bw*& zAgW_FT_z${{eW4gOE3WwC`6~X2YIg7x%9BTm7EnOb%b>E4y1!SShD>fmx1tyaEHj^ zsdl?x*%lUgf67VbRkG8w5n^Tk@b_4+^mz06Ci4@l^|@7LO%c5gn+#MSB%FJIv|BE> zt0bH>q%y5!rWy&zzdOlv!*}KXGuwd|IKyfP_^1!|SNtR0dbt%7wJ+S&Y|{9Zb;fC7 zt#C#;PJKBTD1*mp@b<7RI9%Y%W%Y_MM_77gxaD+;rUh=#{Q1k8@X_Hb)2%mm`DLZN zRy8s+9#D}D))aM@xqM^K zf`&}>`TnS(r9lKN&_bIhzF4cZD!H=)3$zfjiH1>#g%Mw}mYLd~D;S~vQ~nNvD~h3| zpe|Dscnj7w9Z7MgdJU^vmT-Ctc3D)mAx2Ehx|Drh9s(bZZ{N3Q-~-!*7R_PldG_(} zJX57ZN(UN(>kxmpdNNrbjgKSD%uhuj?F>~~mg7xEesr@W@NjsTCay^;g@S@DL;OS>ZC?aga=;n@#Jd^g^_{*CfZeMmn9FgMyFsUr=3e`_Ks&h-Ej}nYGZKWzbf|_k z6os1ojYeruMA-ic0}2k_D40l#SwO&Qv)%h-lvQw{MD9qdLg-|P1uRsCi5D<$|iWzhMna+m3bG~e0hq}XbG%lEAz$iV2tE# z^4?@au@aWYRY(JMRLUhYfz1g$ZRkVO>-5{coY!vfRQ{3=36+{m>6gBLX3QW&bVgvP zHTrLMkzI3aQ77iT_E<187RMeD@~GWd}} zY4jnoJvcb%yxq&(OOx5@=GrxYzIVq%EUu5slF-(k&5W^j{Y?zO<8=r_Dw0QO^r`)0 zXi{MXFTY~NX$^^NxXQfa_pgPpurR70nwXsUP@UI;LSiA#JJOzj)@3H0@qBhZlCiZl z-Sf0Y$1$?*Yt{TuEdlL!vn_AE@M4Wq`2u=tAFCZPc`X==@8h8I?4l@-TSO!sxwuSDw}cl}1JF6R9%)*mfD1T^~3l zUDqg6uFwj3_lam_l@yx#)poh{?ORztGGKT!vu7&3Xj9 zn%&;>?KPY$BjRaeRX{J2U;7GCYFe2heB+|h1^?j)uGil2Z`P;=UGu*7H zU8u4PH#l4z2TtZ@1ELfzS7>1A=`XpY=unNU8KvCIHD2(=Ox)9WluEHoT>dC}D;HQ+ z;yRT^YqGP|>gj1}_w{6k(xAdYKL|N|m!Q`?(xA~xt>!zU(0rkcdS~;OuSYJe%~MYD zpaaCSCgePn&g$2@wV{i+Bk%W>#$pEx zK9UE?^?95t%j46@5mRD(g8|6U0ZtM4BP}!FQkW4l28>=_Qxs7(dA{i4v)_VA-yciW z`|HT*L`yZ9Ic}$=@@fx|rLP>w=GIvas!;DzZOl|Kh-Mv&HY|= z;YSsnzpKp7d{$4Pdf2-%I|-SESkKMb6Vcl;IleZu{GG>xYt8amB2_+53=vMUezC*l z7U}H9B9>`_3Iorx0DBBgA&;d(_OC7G=c%O^C$2z>-xnLbVBw`+S}P8X<3=m-i)%4l za4?g}3N z-Yfp6)Es5{awe;a$4^-dZh$TVfJ7L?p91VC7!WYRdO(n<;QD5uLM)|$RbG@cEp6%m zF2L@lsfK&7)v&94(`FF8{+F^L`{MMUm{0qW_dHKAv6##hdX`DzeX>8dKvbiu3W>YuIpOHf(I$ zXpE+@ZL2XFG`7_wjoHSwZKsWG+t#<*r+vJg)mIP@|*eiN5M1$$2(T4q6!gh+z^7bOeicE>X-fAK9OTt|63{ z;z7z+`bwLa?A_jlxqU~#;h&11BcT_ijxw9U=~nTQDG%M=$9OFpzTAOAAwl~A`#qpC zqST2<`lNlB5KI&(MRmn`oNkuE4uPX=PZTYzeFlfxlo~GeO+h^Y>>aoYxqKoLV^n)c ztf_#ek@FzX2n^uJZFVQ(T9UL*^oQ?SuF{OgA2s#KJc6xg>_4kLk!6U`K`4P36A(s@ z%qpqAADGOS=veD>BXOnI(92M0O@*>vu1)hQ)vB-r6u6x)z;9p3%&`57T$RBU!B9Dy zd))7aMZYs25AJtN!EIBn<&cIq+To zx&|eGVzS%Kv8H=?0WuoWgA!GeGmd^jVR#j$b}3dYap(qJb||eo}++Y%Hk&TDZH7)L;tY)azEi z0Ds0N$gLaV3oNQDH-T4RV}SY7Y4KzU2i0@UwC|%tO60I2FRonDg6lZjkMk<^0;S!p zlEHtwNU^#anf8!SvRrQ3_L8AE7gL>)8Cr=1D)372vmUh5?JkVkNTyvp(19vX3>5<3 zpAbW4z^B_)E>Ax2$|U)b)A2BJiSNN3l>CJ$1$RWui1L&T*&9y(P0#@I?SQ?0(KjP= zBt&P)Q$ol-dRu;qgtPeb3CH>!00$Qh4)K{Ox@wgtSZkYFfuyVg|_8 zeZ}gJ2)O3c+0PXld5e8Q*J%()zB9w+}F|*^+{Acl<)o|x}Ir%se#eC z2rp3>wNH&+kVFsoq^#?f+!U) zva<(O7TU@0J6UHpwMSeQ~T4s{}7J#&8BkD)J(we?Wk- z^Dw!D(!h^3=SXib-Eb=6RO!S7X(he$-7!PK3GW|*!vOYApL9A=j8Y6S%1Y3f*4EB@ zEQ|&))iW{Gy{|&=Rws}? zUEQ;p#B2|x6-oA~D0G!G#p=U2f+6uE+R%7Wl9(;hnV!@_<;M5o1PGq2M<`}#kmZ>8pMm}w$=w`JcEI~epR-HLaVz7o#$&vjdrE7J$85@a^ zI1u9e8PeYdGRRU9R>vsuR3AlKnyJ&Dd#_T8Pmz5eGS|R^iKNXGyI_#~;3?mTB%d~C zLOVQ70{I#<`T0p`a6<`J;=u^LZ&)+0YDMQK37vT!Cxe|acP!w^xoG((E8f*3M;jMD zswA~yDuUf-xy0UEI{LNxtzNwrVak62Kurc+z6{2(K)HM2a=AW^#Zo+j2!3iB5+}2L z@gc)eDPCUPO=OcTP0d-7)PwK`TJ}1iq{oQqfnJ_wPZG@7@iDrhZDst7lzFFntRWDs z)^o&0lFl8n%JzhjQC_}VXh^ceM&AoRvub3?E8WS$X+#}cmT>S}Iu(kEGv|=@>7yo_ zrIv)H0Va>eYRs^2oL_a}V(q<&hMO3(!0{AML-5JMe4^o79icW?fk3I#$xVWH0qGhe zhisBda%4sdi>7U`c--BAM)8;D2khybcRM2``EXo@iJt?+cgvIB z&GMfzZfB?XsFH8>uZ1(>3x3ya?nc?OAK|7F_?^D-i6Z{2mx!Gj;*oSs#0~klV8L(q z4g3+Is(uaU6DlK>e6NcvaSRjHBD9D`oPBKoDs2UTi`9+1&b-(@rRM?k!@~G+IT1!! z)JsRiStw?8C)|Z$c=f{X?J#Jx&b$@)@ILQrv72~txVNJ?V;XogV@*#J7X6mL0NM9S z3Yqi(07Rhz-Evz>I1u5G#cZC|f#Xz&)DXLUhYWBbycT8r!d`-*Gp^=SV;Q>|a1Uo1RwF8wwUwP%V zw=6$Q&_N*xFAWr&LwxTjXM}ngFBHxKD$66%8DC37XRUbq1<{qvj^xI@=jQpe$-x7? z8WeIbtOaX8_<8{Ggx_+xRkU~@l+U6`MY?Ba#0KA#tHTQsxp#%(}KJiUv5-k?UoCs!Cm^@#nMbT;QPpgSqpnL+-IEIv42 zZl(+M<-^0a!R<}-ltcmH8rB%pN7VSOY zV1DfJ4;}l?FvKY&aqX{J>%F}SFFE{}r3No~$SIepSI*?J5l-qv`#4#S6o%m*@%arC ztVl0mR|9(M268{S(R+ITtzydP$jDInul+fP6PTBn(1b&i5J&TtjQLOFUaJ`d+l*8S zq(Ucx`@QDfwY9aFGX0oX?V*X7XkpLb#QJy_>syi>6r;&xRi#ZUdEe8WpYGmDX(b$h z5@Ha4g>rg5E}A=82HWg@)o6Irx*GN4yByir+D-VYc|;y!eXMAQz43f(eDYm=Ciy)i zkRYHlBmg8*0)DrE6#3)MaSH%SJ*lvCUQvFQ;(StR3njb4a_DfZ3j%U0=XHLGmFST3 zf^F51c&KM;6J#bgPl`;U!Pf~OhbW#4=5A7@Bi$kbu{5l#6CctasNY5jjzSZ;YU*!9 zvLU4qTpw>?!b6l!zHlrzC`8@8D&CiSE5+D%sY!J=Mhvb6oZTs1fY5qG1l=RCWI$t1 zyV}XvMxWXkoC>1?3J7JN1;z^XmnGq!P;W>=rm_$Tt+s;PVbJUeoYPKxZ(=_i_WS_( zWw=&|K`FkcIS(d7K+Y7#O3Fz^1PJd6zc`2Ctl}Cp_cF?WSq68?zLsS_zP-aX!hGGe z(cn%S8E8i%65~HcDH0htfKy_b7_QH<%e1-58BL9aH86%5hYjvR<(sR22%pPmmqx6d zJe~Wde+6cZba*)^(MHG>*a;q)cqf@jDX zcGjgL7z`Li=VRMxO-6eIV{X7h<(=1U!CJaqw?9P#F$SFyuY(#ZIhlWhJ zPzX@@gw8G&(1g}{t;o7#p%!j8K(5xoh!t+`e%in-{Xjt>Uao0^ZP-?c9GO7S zKWF)`3as|JPyx`CCsGDKt4ISX*HSp%7MjD`#{L7fQc56wI~s1AF8rA=@eSE5YHs_g zn;PId8AdRNpUKZou8MVID#0WN4l!QfSXcUyWCK~k)nF?ovPzPyC233N&I%*iD%C1_ zr5P?8GICj*zYbdeS%wHKk{2|oQm%*=)x)=`vxnzW>@=qTd1(r?ZAzrg#pG`BziM=T zb(H_3R6ogPy;;eY1i^}&M+?gAO;)3E>7P^65&CE|J*;f4RZ8jKMXW+ChJ zt-Jp2Bru(J9?+EUHVZDsGjmNr%gqf&RA*fW)!)YCLddA7N}+bjyy|A*mTi~*L} zZgY3cw+8ko(@$VELP&W>1*^K?xMS$!N;9X8J~9^8+2JwC%2ZGgd(sKB-oxh~!E$Mq zZ-oDnfztx$+k2?%WB$wKC#Z}}LQ+;%E-tP}tb`J+8Rzz3M1ptgl(K)bDF9*k3MkZx zO^A~TMY=UXR&zGlI4z0j-kYN1t9O_APD{lc6d0uA>2AExQ?g@Iy5ws97$9nj&aR%y zXEtwx4#CCrE63SN3>qCBEvZs0`K6!eV{UlITcBKlCkuf1nkrI)ef|1i&iQk(*f^;; zEXME*kca~uEkd9gJaA;e`RKy!={_Q&rUr<}7RK??C{t2wW$=0Medy+(p()x!73Job z4f~Yv4x;vWvB{!L_KAxvhxAVb6DYNO4N_Tfw_JLw%Da*Pq$)ixwu{ik13V_6+ml6p zu#(x=%`Y8n*JEcDZe3A-sSv2J6xKwysLh=!JiDq>Q|DZ)uPfT=O@Bc_A?V~^baA=S zRgf`<0l9$o59}S#fj6*wt1lN+C6* zc&>LoX{F+Q^D>154b5};+!fS&WudO25f~KI24E!hge6e&&J$y=_2=iKSPL(P)(e>I z=&Y;+hDQbm3+&HFXadk|L{$e;uU?THi@z6CGPf{PY!Zp1j^jnHM|Rg#Hw8RxBd_bn zo@he~<7UY0P$2aZvnVl}x6ymr9a$^K^uL;;73(T-VoP0l+#-yo0eSE#8L|1eidM zu#shkx4rE9#3Y+l7K_(l$-MA1f8+*(;yZ>KfR_vqWCiJgUk*g0E(%s=!aBxRMg8YOza3WWvs~~r^Q0; z(O_a!pmG@`3wEh?8iLt!K3y%B>VQyX7)S7A8=5(dc@< zH9A+JJw%VEF_OeIHd6CrBk%jDZautsn>XPhMI_d};zjR~1{(qIV;zE(CMDb96-@uy z;RhSjI=76Ba40OLHm8Um<>i?|eMbMzO9tkxbu`acqcgp|jlvh?begPa!lk-x6<asXeML^;1$V5?FGNbYvkPA~d7~6deL+S74Mqor3-N=HAYzcC*JrWNBf}kP195 z&tlh-$MEi260-?5pTTe<6KZu#o=ir8YMXd}&}Wzpk+riX+p)@Pyv7eb&uvVFs$CRH z+XJzARtwI>N_RoZMKd7P7z{~vP*yMapo#b3=VY4k!|dz?8O*wjUOJPTJw>Xs3v+V@ z1nB6cnsr{KI(^0Y0DKe87a9)$!)U_vdyd*D?kKcwlbukn+}{fIcKN4icWYWdbk}YE zO$l`TzeH4MyF^^b|IS3%2!0S3FpKl`uY+aOp^?SI!6Bgrhz3g{KmmvF@kv|xu zhi-oxQOY(F-kxNIp3sfYY$Z`$SuJ(>ytL8?>#Q@6hjvwKls>IbJy&@f2SADVw0HOg2^6Pt+0DWe z_JlU1aXN0^z!-8>+cX)SJ-(rev6(Am+4*p7X+mCWa&^vbrLlJQ0N~wvK0}SBa$1P6 zq#pr*Z=I4I;o;2UH&-Aa&E&v&7br8ydBcvT(u!TpTr5#%o#e8&YK3x6H0joHSW}c> zR;4(MA-X!Yk@q8s>Y{JYtiFV^|FwQ-eL350p-QPYFYX+zZq4%)nGag*KOm&(Iwe49m`3kP)87HyG8|ph4tgT|j*c&jPNx!{{4zi*l#^@c&Z-@$yYA!% z7M5|tEp{qX)kiUCoas)a7N@1aB9*d{l$9Jk{kPri5^ee$Cbr_Qz^?dBhTp;apP^pg zA)#U+zW^OO-C@MGVmL&Z!mGneLc#uU`q89fSXk*BGm<9a1_`rtra~_Hu(VtiKc?v~ zvNceV+b)fU#Tclm?L%KKI}H_8lGEp`v|?0>=8s?c%KG2$e7>2n=ABj5`@-gFBedc; z_v5wC43W*f6^^%nobB+drb*U>&W&+VVNqV!i(AnXjU0*`YmPF#f)J|S2Pq&=jnGB| z4hn|2ez)CXTfuX%LLnm4-{jHt_D0&PSCZ=68@ zESgr0z1ax%R4l3ZxA45vHve|NphF?a+;H-wWB|JPHQwDrrv8RT?Fqj7gN)e?3UJzf z7f(>6x;If(Ra0{nkLT8SgU_)QrG86JN)1E63IM2`?~J6;nvE|u*terG;UW&*lc229G!hhR`cFQ@- z(e9l4*+%)10(?4EodO~0Za5{ZCe)##vf8|@mRDj=X$|p2B?y-Dtp+;lYL8oTCXwwu z{tZ6D9invP(w;3AuA=Dl?xXx>MC+ z+lyQ;B^Zrr$(_ggq^{?&55>!=z8|~wqU+=Pa8*??NPKwn z8`HRDN0n(3E+4KEpb+tEEmp9q5!OeVX}f_&cr0X{3j3)HuaN?c8s_S?95ArgCGb4} z5bv^`jc5oSt`yp9ddS#$oi=@1shUAF*PC5ZG9W##%j_kxqNB~6E$O^@Yew5f7XyIP zq9S7@Em7gje=k{ZKHnM$Ns@cf3QIaRGBw4(Mxnm?Hzj_1`(@+gb+pZcyKbvHfXgSb zb2thdefvzsQxBgW5CtY2jwf4<;n;VD%kYGNLrd?@AeG{?!0>*YWGsa&zO&kMt2?`J z=o<+ahqJF%Go`$FGHHSWq*M7iM+wVMwU%=#4GO~Dmh;tYin-y(ITF+?3W-Q^#Cm`O z%)E|;zA0j4w!^&RJF}{)H;GM@m2HNUmD-xERJncVipy?a5am(zjX$Eb$#7e@M26Xnb6s17j*ci74iGUWy!QD(8xm0K@a7fNpORtt(Ai&ApkgIcTuo;sI{vg7Ea5t$WItv4X-FkPh%efNojIvQGn}u~cPlM;d z3I>AK8CT+4ueHduCZ0vf5G6G}cJoD0){${CxSr6V`I(^4#p+q}iSi^!rD|V!w0ddP z%5NtNCUW@p^jqzxGJ4zm#2ZSk?6~hv1%QrN-0CCq$gS!Lo~TAz#%el=MINv_fVi4APyy; zmOq#&Bq)uu0-4@5gyWXgbMjRYLWQ^K=@~>;Nj!V@+Fren^SBMQHG_+Tw~i~b5JAqm z%M()q(JL^ZK*+2!>3FG*-~o@@*-$qpRMq|aQ&$k8cH@=5;K-v(RSXR#)>lzmR$yUc z&3i7#0l?bM#atb~-t)I!9q&ljU|x2|Hm0q(R|i&VJt#0GmzyvqB-WDZ1)kkA%@`4d zDJNU`j0BnG3XNd=&p-rvyLn$p;+Eg(#L>VelOJP=pRb4zvSi#`jx~q@$jJ^zv)C5w zbQ;!-1d1xdgM)*;@g8{ah*3a-kI-j4>bn!4{ zIQyU8x7COD-j?RAWxzW$i|qB`D??A#I1)L8R%XQrkg zoiBQl8=wdxyxZ66#gVRtRxRaf33Yk;1Ti3V8@bwk*qd zz~ytdyi+*o41hCZ$(2rlj2@iI67VG<|F|tx>r@NWb;YTV=df{9+Sw1Pl*w2jN4+A= zfgiRihrfdCRRQqA(?eody^L)Zm2f=t%s2>@|^T~3Q0gSU@r4i z#jy1UGd`K~@fpaPLe4kS*5-!1CpHH47*e3LN?<*e%kBAmMYUs8Pdm?w`{tc&+~8If zWpb)&fIU!t!~>w$xecr%5-g1)SCJf`&0fn;a_P9P*A_Kz0L z1O@zbz{d4p<8maGpPss2?dOlePDHOF{j7VXuEKU7>$y>bnoyipcI_r=%_DjR^?KYE z(jBRF&U(3W>!}HegS=nDX|%CjJ{#G`HDJG(kLU7nq(+mzI$v>D^u1rPowGf|p4u>_ z!7VrM=cI*tBb#rbx-RBu2Dxl=u_TU8(VK1~FHs(8(`idTvMg0CQdniv@c?VvFkMVe z9D29(!&(glwkp-PlvdU<1v;0@5ssw^W=9El=Z$b+EyI*ZN`L`SL8(#uVLDfvqTaHP zq*}h~-mXKCj}iH{W<`JlUT2rLZ>Xq}x(umHi$YD%U~Rv`P$bkv_7nC%KPHc7j2IRi->A!}{SI7^zByN=$xg_0cnT2TS})%!4|l z^e+tN6&%p+Nq1dU_tC|>xwHz-Z+?+{4z-r*XJC?*E*I?X^PR6=>9PT#0)<-3J$ILj z=f$c8Z^5o)cAG23p=|(y%;kCActhm%VkkP$L9nvu0=Kvrdc3exW&M=PLA^mip4+aE z!NmsmWnSHew-aXCL4pg~LPCsbH$y1JC~TsDps~eUZz{ZjfV87gA^w&suR4=|P=kNQ z=O;1wsW@JI(ny#|=fis8Cn-H81SU$tzV<_c6!QiAURGqjz3sPbY*+UlCvJTw@)NvX z%Qwrfc>^8rrc55D;o|AAr#zNa2(6s=<#}I{7IYiAYhn33R}Q_mgRS$P&&p=_@9xoB zZupAKvK)&@xen_!7f~b~dxtqJYbLE z+1{?a>EoU(i)cF2_M~Ev$KzO^U9!%bUC;i&nU4`zZ0C<5ihW9v+{d$mbec8pJ890E z)gSQTOcmn#?vsN|9vf}ivLbn(yI1%g_3~tzW;`Cm;@l6#2FsL#z&_a`U7+-c>Kp$4!MiYF#3q7(X;cuKE%+d zu``15iU%9Z2rSN^8xDsbOrm|F7h*Q2McH=ZTy0)2BwjZUrnxdr9QGzWwl?q0iIE>* zMYGADT|?UR$H~Z`Cn*?nRAh~TBXn-G<+*%QWTv2>EYDlE z_Y8#VJg$;BzxSjw`(5KDkA}SOR%vv^WP{kc4 zoB0Z>nW}G}2G$R`OzCOOTc77{4<&UdD3Rd$cSh6dCS*#ISoazdOjFIrsdJzWULP?p&QdBOKHd0GUTxeMK!FtEJQr#sFS z`vghwaZtE;dTee(OCB&Z&K}?`?z^WO9G|&mTwN_X4lkEkk#n&gvgG$P*{PACzN>mY z+YKE#g@ZM)*l3+^?QpZ+37U-ZOZ5#bUc@V%%r`$dMWj4+b;2U$(;&6Q9~|SRD${xj z_d%W}wbd!MZAuzatc_nuVpduYxMSU@sCp@>s9?8kvRu4PEIm0QffXesi#M9KVoG=$ zHtS1)A0^F8grht)2^0yZU1ntaP}NHQhnZTtw3Sc9 zY>xRxq{K+v$i-?E=asrTo94UDdhOB zgBsGY%Ds}Hf5|Z%3LwY6Jbh{C%H32cC z5co}x@Ye@Nh-m^{g&SYozh?iB-+cUmyHOx#aDR>d*VVtMXX=1NC%c+y{o|{@ZX=~7 zRETA)-~Or2{y_)?^a?h3a#C^w^gk&P>I0PgJJ>}3?P_3>z|nsn%TGiuW@Zl*j$vI%^MxWP-@{6CzLIXaPfo?b^4y zi=7!~$E@?85@a+G6VWKF|BLG9Jb;u7mtCXu?^(?rg4Wd3RGGeP#i{BvZI0{a;uL8& zu``pv#sZ}5j&EUhq!ZOvrWP+|iq$8sG6_Z!&*YBlD8+x>e-1nfxz~=&cbMO+0t2&X zx3g4b(sD@`(eo{(u&^*WnJvkf?>3YA!g%S@G{b}4tHZbWQMpLP<5pi;OJavX{oI9% zPVg5wSRG(xR`X_G{UNs^zB;KGSZy|OpPCU7g(x(f1QX#oI|Pg-6Ci&RS1_jzxg?_(qx z_}#R&qMz>h_%8ye6dACYZ#S*Ao5Jzg&V54^Uyia-U2l$oY)rCx6zebEqvQb?t}{iE zg!nh3SQ_}WdblC(dUbb;PedL%cO!5=5^6sXq`O>iMDZu_m~|$Zrs5|-;Z3qlcP@UK zpaX-tB>3UA^e$0*zDAO4ye=EX>*XP)a(w){sdfc$k6W(yQwN)m8*#WC_c4jm*Votk z!(H*+9z%4c(o#du536o;aEhsmOc;LcpFk_zr+cauQ@NKv+bIq$mF^(O%HlFuJ!`_T zq@z5wLcFxq4yM3qY;0T+Y%*QUZyGO-F)9^af_tSuwX!~zceW$#ezU}BXVw#n7R}=I z?5m%b%IXz(owCkSBABg0wgnQ`w@IN{fK8qbTe@r=9 zj>rBbq5_^U!IPUa?t65J$(@M*R|HUXC%l)t)0_SDxL+;JK%cnz4EoHWw{47XT%iD-x1TaOwTH-~rlW(ee6>Htq8$bPKe!Cr zXVM_vs`k#+v@z2-iaVEX}xt=mb12jC?u=4q!6Cb2uNw}Tv9qePYgZZEry z^%a(>iU=zOzV%@EWb-et5F1B=D!&Ck0p}p2dqE< zPgAeRpKpF^jQ=;pzuVsbpDxr7#)giTd-t(xZqk|5_<#5jvz-v;7Imix`}hDW#bAgr zDzMxqZU*HE|NCPBtbq>$=;kPLN!35P`46*#VjvX&z~byY|8Wap6gazNc5ZF99X|3d z^-pQ~&3&4o?d-2ZvB~R&yW*KGp8&pVp8-uFQ>Zdo@oTdd4E?Q*e{mQm?4h&m7<Xoq!RkaivAi+>>WS} z#@OobN&fj@kBn3>AS{mcUzAV)O5&6je*gL0pThu+L@zP;hrr)+ivf=N;_uXP{(juw zAAGa`H{V`fA@IK_`2&{()i5J&oi_=R_5lK_~B1aT7DKL|IbI&n}Bl4eEXOd1KE zG%^?a+vfe*8}_F5{i&jbYHK{fdXX-PlQE+qUgAw(T^wZ98pa+qRS6>BIJZ@8|#TJJ)rtv-ixb zwU=i0EX)a&l@^7A#)Jj}0)qP@CL|981ReG(Bt(RYd;@B?KlrseB#!OMwQB_Kk z!@$OhR?pBz--y=L%Jvr&5SJ?l;L^&-Q4inM%F^0_!FI9KFQkQUu*#wr2ExF$3RO@_jh1Mu4exO>{rh}!T!P5KOe{S3mJ#J zk%Nt;(=V!&tj!#G7`guOjK4Pjmq@N(xHx3ZT#YPMh0LsstQ`QLJPgc?3|w@7+x54g zYX1dgqyGc)x1N7Na?$+~*Kgwcr*8hy3Q!IYG#A}}6wL$e@9|gw1jGmQMTlR~75F3* zToqLceW(De22xHOybTn!?bqkFVR?Su+HyeIl3J(+T#kW%AV(Mh0X3iaN~4jniamyi{07#Q2*(BmyuYA6N(wB0h+a?{7D1zP|2g#h^-l zzqS1_fDy#7D97&aKmo%HQ31Wfl-&Hce?j|i6vNW|2ERY<-|YZGhAF{@rDK)czaH`b z4PAhNF_~Wn{|~+YL=d9{=p`(>0h|3_jB$cT{yoD&_+<$AoWjb7P^BOKDvWxR{u5ad{%@rzg`4Do-Z{0p03xd5MnI%30j-HGeqS%1)4uUAT` z0*qgH_#lvF$L?6Nzj%gM>P%2Gsxp-j{i!CQ4H=>wG{jF7<#kU6Dyw#xvpk}ZL==+0 zBsXjcqSN4{uZ%5LzDivOL-_hv+6|3B^f`qmKPJwAw%6K6mRJJ@yi|b2-CPT2-j63~ zJ=<8}H-!Ig0DQtA$+SAWc2Ay~E9j`ZOq!A!oE}Ba6=|%Mbh9tZ$D|cMba1i{|$L5}cxXSngml&atSk0g~ye&=Br7KC2DT&t5jJD1;>Tt(Pq;rRmU zeLU8p=;72!q2SG@ejNVUv{cyV?HiV0A{hvPV=_LMT;7fkC2zkmG>iapk^c}W0?iCu zKy|eTfE`2VRZ|;*2dG6;t`zIA+qVjI_2@M&!!{)swCr7u$HhYab9F2xDG8rqr&@PTtuVvtM zYuI6bs;z~aFSo&b&T^^Vjze5VOw!iA^=pJundML#Lu#O8;MN@qw2h zrZscRLfil0tnZB)`||R#@!C>$zi_aClcJ)1d*GRkTae)Mw`F>khIQSdhnus^)2r2D zKK7D6?K-ws*c#fUJOvgR@%oo-_3J1HpQ&oMB5Z ztkr4EXlm^hp?cNpY)MI!iHV7{{Dnzsn^>xMbnKO-#CZ3}GQEqwtBQ#&qiSIwXaaQN={1{E^U6&kccxdtXeGMcbf*-{5pczs`RCg|5wbk7O)eUY&~lf z`cIBWD|QbT42QH;4n=ncLs46#5E%HZR%@-s6A?x!403S8bVJC_FVLIU0+al%JO zjJ)9xa7U<(cyCOL6m)-D<1jf$7M(T@ zryJT5t_N3{YNg~NBMHLULgnqq^!`WO&$DG39|D+4sei_Q0b^W~M#MqAy**Y@WHYJM z>=hpx93&y_ClX;ZkKfJ#ql$y~d0(5K;=MRs26==*q17b!@g~xv9j=Qo zKRRk{ZDp5|l!S$Uk4Z=X`;sxr9fOG+S#(@0sE8eo;w9qs7QylG__#lwI{ou!@A$Z) zpr9bJ|8#!<*l<8lpk8BAOpLCXT(f0Mt)((G>Ye*(U?R*V6jUHIDy4jWh$3GihLU(h zWMp7UVNz0KBdcRjK)}<}Q(!<43XOceYE7QHx_UW2b_lFBa7{HWKT)^pYcU*3?^02i%n5*Cvg~dyvN>;_1$7l1Uy}Q5mIX#67 zA_+qmbO;#THRdPAdiQL$XNXu{NWsWB+8HLm)M}1e+ors@g@J~ql~nN6o zdV38vy}K<#mzt1tdv0?)ecTGPqjf&JQSC7Id5HCX*=&0NvE+~dp_`^;#vrFQ^P>+9e96h z^65Hhv0JPyfX7>^`bH!g0o4at>$Dtodu&vB@q8C{Qb}=)F+gquCV(j4FZ6;?6Z{zTOGPs;}B+?O#_%HLp{j zvfK0OA=oD{U$N>+;idtc6!2uZR^PMKN|`LQvGO^%hFYRtj&o^fS*AQJE zY$kUv7V|b&7+^uLxa`j3kkY80l? zG?a>*X#!L#)wdlV!{#lrcM>f7f+CH9J$YO=(w;>PNM!QptjU6u<-~QyQ`;iYbF^ZW znk~wz0hD^E5{9KGr&C)p`Dk^cg%j!w)xE_1l39$ihd;shzWNbUXZl(Nj#ZmybGZc# z8OHi9v&9Rowl)+fg++xTN~OS{Q}*|7D8!I*4&?Cn2|wup9euAEdvquQypU`IACq6~be_{*A3 z3}RUkykdkS@@O=LQWs({@YP4<>8Xp~YldZJLQ3jrzGAW18;3-aR;x2AO#_WKzhC-t z<41f(Yb%Kaib9^~m!A$($-z-s=F@plY-i+%Xr!-(Edok;7x!#LAxJ;HmU6tclI{m1 z&!fNMd0uym#?@V0Rbs=(t2J9BPf}OAPjIkuA1{78Ugc~$Yg_ex*qBUVAW}Vg2@Gf0 z++S1!5`lgYmCRswo=5|14PL373Vr9Fj%F>atnT?c4M&jLoUNzl=aDH8vv7Is!ah+@ zDpR{0ZnY%Stz^4%EmZ5V#QOn*#B0#<+V!S5S*Y}W*}44I#%7}_ocaFj0xaQV-#R|v ze7-ouC1gHVKX?~un!JBKL?*Lfr>V&}>l;R5&rPGw+`!pB)%VIHzS3s$A^d}3z4ch3 zlP#~??a#iq8My`g7%+{9E+3%yo}cOb{tAV=R7rHeV2aD9S=Sk`R}mX5FC#$8%$7^7 zkrXA`t7#V7d(~|&{l?U9(qS<%2((q=IcD)92P{)2(LkrQ@t_!l=sAmvI7%dKVT@%e zMVjCmP1gN6ty?>;Zz~kdV))N~pw4UBYlPfk=1x1q46(#dI3m!Nh>Q+{iV@4Xf)HU~ z`9&Cc!5`1;e71rv9d?F+S*3IKZ;$5@w6D(d!lO*cB4q5o`J%!XozS6wRuD6jhyC3o z_(&0ar@=_C?ITex@@-qMyo}SJ0*j=KOjRHDi^)6MTjG)8v)npY+P$Wda6G09w?xgj zEM9DOgS0&0UokQdO;XjZ2cH$XX+V_yi)6C1c^teCfBH1U-SanlJwNAxQZsj}d+kkb zT+wvuy}AQEo-AJ1nb6_;9aMtJVq*p?LI76k9mqc1_v}UA_aho@s%IXllHhzEO z^qDJvWM6HwdEfbhtU4(7P2Q6H1ZB3HC+eL>BQ$hnOrG5TIp;^x=i^~nc z*RaLj2%RQNr^$MI2Stfjkvg_aqsy9Qed(L=1g7qo=fixtcF+6|U6U}@3JqK?N3fQS z7kRG70{BXovs}~=Ke%GSU}s4JR?>s{Dw*zdwlJ%nDMpk#lWx6&~$L7 z{y%cfXDKDEO0((ZE!R6!!<8x(YXqO2EhmQC43VSFu9megywynkC)B8EXjD^pLjPFW zyQ_%tUHm06=mMO&;}A9v&!M9+d5TpL!#_l?Bv&rkJ}ynL(xj)QkFWweb{spu?pc*X zn5uR;H&7-DckK}Pz9P$HwfIUwSj-ixS1H4B#qq|qhYM^hZ&YyJtE-e~w#d6lZbfBs z`OjkSjwYC^RyEexdCM_zXSr#&9U|R+E_EE)s?cCXEer|>%H;A|TN$r+3MV}m=#|d= zY-4Qx^+;G)RHwyx?6k)K6tv?=sUk;By|UQ)v%?XO&*jx1&HSDeCYQ5MP^!wh_G*9; z1(ZoUFF5q^_f8tBxE2XtoNMatI%Tx?lSceyrL12Fr3jy6a<)$-b1AOwg#&&Q#T;HGBkF}nmQW_-#*(SV>`6#TYJfynE48pl zpnYtR?vxig`_P=apF&C$NTH~vtNCAp;EstPE&xWPP+&fRRssf8#(se7#-7xZYz zqkG6xJuOtGJfY@nnV)9O-5a63zCzL*`?Wyb#{u;cUd+xFaStiTr&!6fm>z1AQmI^s zL0mdDQ;uBMh=l2WquXf$^a;kcxC7NzLx#aP@~h2nL)&DMda<0&mZ&uQJ&9fBv$YKttkwJP^t=o(D9)c* zSXl?7$c9ta#f&vyQlI+#eU&y=+YpM4HnSi5+f-EVJ~5fpxh#g%n-O>EDxpwtOkAkj zy{a!ZxTgFb?*MH1@xu|soYEy5bB&XutZJi5Kn|)scBPUzbIP&1+$@6jSwk+`R~ANMmrZPB$wN_y_>ES6TleDWH#uUA%+W#p-u6ZUZ1w5 z+%lV~Hu;>Nkxj8@RP){+HMoRs3Af-bkRqI|w_$OSB6R16l2Jf4dkh<&X>m4{X_RqX zBOxTVxjkD$LLNheLn)}{sm7jZEgc{48Woj#8i!@(g%psSfGn_IU+q#6iNbnZYyg*j zWrNYh3>96eR?zJ5HaPg+bKiODHH_;n2ys4Xn3&W_$>_4iMSZx+_Q|<)%Ontb_vR*% z=6=I{EqE*lGKy=(NiZXqUOirDLbW_GB)Z zZl^Na!#;@1I_Ta0#Mx5;*2p57jh6w(i-E05tj9zV{Bs)DLIPt@C@zvBGu9Q!j1xK; z&$>R2VgUXdHPxU_V}4Z97=#jncst|-s8KtY**X+)K( zU&N=y>1f(!xkxEle-S6wXh*uNNa&U>h$V?g#Ou@Pc8x}C6wX7fz=aNtfv$V{lF&{A zV#5T2xNh9OQX`O3N*+PBFV?#UE*hOh|9w84%T2#DQ!jzesDOL!MQpaygY4Kzay2z} zYm0=;INvv0cz-f;gBa<3SK@n{i^ZI!ZuD6yMEnlR3*^`=1!aNPb0aEc0=jVC(h>(p zh+>V9+}%wk8lAR)VS-%#hrRT}X@wWe07hly#K5A`fK6rs6{XzXz<|ZgJ4VwBS+qL4 zZOk`q)LdBjbP~K56yVOQ;o)J(B3^}e_;px~-lj#A#KH${w4<9Yn)$m)~PZE5N zC|1FfLXBK2Tn|wIQ|b2@vRXWlwp3}qionQH%=#?$yD!^$T(TKDjXp*CrO{N>E>_)p zY79}ZAT$MT%-V z(i43$O&8cn9sqFr>@+%$miM<33HUlyr1`w{VpC+CA`0kqM1Gxv+lEJQmzDi-?9(Hhhm zc1V}ky*FxE*kj!Nm@jMF_MOa1HpzaB*U3W1I-gEgP74K7q30tK9i@u(s_R`n1fvn2 zlwzJ~O`dT02?E78=rBszhOCApmOu}1N6hk znta9*Dg9K8_x^7;9Uhj8V<__#O^Y?tNn}u<3-XDXnCRr)0nypj@X~i#8~R1knZ|l| zdyoPCUk%St*(sA`YPzZwerTe2m@rO#OtE~x#g;^RL#NK!DheYhEtYD*XhJ_(_mL%j z+#Om~7Ai?~51WsL#b8e8*f2OvL$z9N{GwpzIzK+DWTBe$_WD#vK^Gv*{ru8G=JDaf zT3)Xtu0WutEJ2(N%+=12lxjhtcxUKHrIts)QbK?oI&vXpRiZ58x8AfPOi3jXE7CMM zR3h#_X5TwJ*oH`tC4$y7tPv@cUKt{&33NGJ?6Uwu?hYM{2bT{p5jg9QlbO!j1gLMS zE&k8|__e4g77PEHOxzFc?J-Oi|yNArUmQGG)vHD$Z2&(Zk4 zix%-Bw+Pj|`v<$b2FChao-vkb4uhLNqqu`Hl->i^~%$u+2h5l4-2FV;bMq7Mb*HxX~UD z{aw*i0*ywYYmI(dTAG9LRLawoBqS^byWwu_yLb}iCmftp*UO)I0}^Vqoot3R`obye z0joc@U1tq5TF(oF0mL0c3xuriSCXi;dW;mI zina47mlDQQRmukM;0B(>8|rIa&ey;>Bf8lRyWjj@ygrSx7`jp>!N6g#M_B2~wK>CK zTxY~}*av{?CBn5LG4S*AJM7b1&UeC{hzA8dR;vXyHQm?lmZ_f4RA{7!LR}YPTFlP*JU zAXlQ%%XjY!kiWO}V$D;_Db{CcuaUr*hzJY&yxe@Dv(av!M~=HlS?I9Bv4l&p+;ZIc z4($JQ3k?H5l`1GIBeVCx4>SnsBs`StTgvzriZM+49Lo8gtb$4~g;4!6emQ*jo>ZR& z&qb+R0D}@g+6*Nt?Z;;q!U#AOQEiqvUH-o@lF4!?hH*zB1toZZ0UdFm ze#uMabg{HpEhGZFJ6Vn96^`qo<{^H-sk6-$VrQh+fsi{)*|Aw^{upa3((3$5`X&Uz zZnc#EqjneC20`8p*Z(Y?%ZP*52pD#Isloh8ti``nWCGfBuA3{IOx!KxR(;~i#6eB5eiqb@SioQNTpsH^-6#AP}$1|+%6AsSQMTH4tyO6xt zpD!FCu;vnwAgGs1#b$Lw92sbBDq-LhvXsEDFuKs=5h&Cm8l0RNq^^`O^vIym0ajma zJcft@fysNa=|zhDI%t$q!ssLLFB%bqp&bamSg#7HDSni)@(J@ zRM&SW1ZA>XF8B`B0j-_5zP+TLt#XEM8Ofy3Wo*I-3YC;*Bvr}2b-%4j+CPoAxW<$B z&dtqj4@DZ^`kni>wvICfNUwHUO=m1_9g-{8W^n1vH%eI)5`XrXH5x;^Rsh4VTXudf zj_pGbnYt#9sAzF8j>Kh&pb6HyG@UUb`#}AvyF}SJ(Nbh?t~6;lTp7i;MJgq~q+~#v zrK=+cr3mPwX@xq=ew^;@dKZkd<@&h(f_EMlO9il0WP-pnVEuL@`sN8l8z)2;jm2i( z_cZ&{2$S&3Aw|&cr9rT&PmSXDZg#a=L&T@#u`wLQl$xp-RS{BY?B@+XsxIti2uK}! zuJBVPS6KM&C;ZjCfwPOwS|bUEPvjZg7E4|4v?z07MaGJJ5*J@JQta(UAct7j&WTnZ z$i9V<{`uYz;-dv#AgUGye?yyi41Ohe`S6KihxO>4UY>@KF^)~+wZLOCtKoqHh8T?s z%W9u8>;=4NK@?E*0d#KKuizEl8>p)=+AdI|r{`!{?zk1k&A7G&=~-4#5y^ppfiYYm z=%|RIEGQ%_tfsC`9*1ZgAn>q&LaB&AB^z*A8a%C@ca#P&ZO-=g_N(p8UmJ2kIpWmW zt(tFOzFja-`~%gRgzHWBEiaPXm(cP)K0XindXb@o8on$1x0lSEa3@(gydHaTX1nt+%He*@Pbty<)z2`w*>&6yI1+h4oh>dGqG4sE!gf&*y7Nu|SpNNtg#_O^`1Tr%XmHEPN*U zsQE=*V&~H|4xdZD0b8&mda~cAnpmOOJmHIEKaLvqV#(C=HyC>sfXXj8#irZTrxo2I zHrLlg-QwX}_{ih_Oq?PB6XrnsNowBbieD1{#Yg&Yf>|0+{D2J({@;c_SX-9_ba%CY z7Q6o54E*04!TU@J z@09*JvOWp4?ha&hH%;@A^E)oVOlGdt%t#0@dOGqmv@#|J28AbnvX zqdgltH|LH(EcRdd>Ep4wGk0VYM$9>|K9fF!_FvNe1>C*Pmt(g5^e~o2GcxKlme&7M zooXqYu%cfq>v#13^;L$cf0f5j*XAexeZLqLaIHdqBE|^vZ*ur;XsR$kW~stSH%Ncq zZ$=XH#FKXPR^`;DEK#N%2dJ9xg(N4-d7IN|0V?<_(1ni}z7uEQQZhT7&D6Uf^NivD z;qV`U%MEno94EXk40cq}KNsA8YnGh&;#;P`>5xKT3;93lhGIU0%^cDueAfL!^?N8B z2=PG>@`av6j8gYWN$M27QD=eD9O=)|_#l+X4?WVcG|}DyV`r56 zB>cY!D_(rC$kqQ;66=Wg7fDsQpCoP2 z%>RM=fFKK~i~u#4RwDi-aKP*UkokMe_l*@~%L&g%U%zsK2zYogrr4`;)J|>p1?>Q9Zug3ik4LtbZ$6Pvxy?-#D z5&0izn0^(GF%`#2|Brs|UqxxS<_W=nCwD-t73{AW4O^NIFy#NEb^xVf@V{nsFy=17 z-&+QwKhPotqd(>0|FE2&zwF{LSH$fPd-~6f-#9*?{%kx)oa1lJ2Ep&FSN31}mB&rutp-%V5pSO2bW=i{0X_1B89#08mQrMhm3{-E=(L>lvK0pixBCzjIEF`oH z1T{KSSs{SB?VWb$McmXSp&<*w=<#fq>-PB+|fu|T;FLjdQF}9m{L4N zQqpnU%4EOEk9P$^X{s_Tzxwf$s)Mp)>3m^*P*={#PXUUc-={x*8RBplAZ07|!)Lxv z2C)WPIWZ5Sqb!|`HeP32v~9HLAOHsU+_?=5EWp#amn}OGcJcbVvu|QjA?6ebIF zkF)Q&a2E58rn8tO$8+U(?zip}PjK=hyd=hlTLWxW>lZhdaw_k+n*a~pRQ)B{bq;|Y zJ%iH=LQg0Pmra|kh_)AxH((pZ$J*swxy(8;WlTC*Q_D~}x_CXV{g^Xc=GW^U5-cB%xXTL83 zO+yn2jw8`jW=M^$qpdY@HfQ{>>^|YrH!v@`7keLEGQ>4^M^48E6W(vx?%fwO56A;J zEDLLCZ4Wq1No%zwQ7T}1gB8hSwr(Fm*I=?()LX6d3o3vj|IlEwo~hJm5^pev2c#z5 zUfnBNol2GK)>@p(vi$f1!%%T1v&O2Q*GrJALdk6(f0FbkQ0dI|y&hJiv!ykd5}+*9>-k&VdZ~T|hKZuj3eM)f^*#S$ zR7OcVIoZ?0?*xcTEwsQ;6WO-8UcR_Z@p#E(bA&>hnidBK>gNiIopH77Dq}z!80h;Q zJWdyp7LrP(v$3%L`GJ~)fMK+Blv7)2=e**=nDvJ7fLNVACNPSUbqwbes~at z$D5m-6~+m;yx_3oI=>)z@oKr+^|(2Vr&6KK7x4^ZuePB}(^YCPpWdU9CBZPQb{yE9 zqxtqCVrpE$;k3g_d=Yt~=F*hKtyjI!#CvIc@V(iaz0xo zyV*-{zShIAw!BP6xMh%7I@@}CaOinGIEGG_#%!ZqXsJfN(%|J0h5b1w3Y($=cODxZ z-DT_G(ggSHyswX%n!4@&NNXXFUS8NWJeisTGd}3?>e1B=@3SX6F>$lrHYpq?3kY;d z4ee)b&zA$e%dLU*CUdQP(;rmQ(#5DJnu+CfH?W@i%l`FNCiz!?SgOVw})f25w7^mB$Qu=DzU3co8hESGPp7{jY zZ^8u4NHr&rT8p((>CHBkINk&hZNYMP_HVNeF;fb9#PzX(Q5U+!ihMFW7EYT6?JUyAA4LMT0d%&B2~}3!1Xqi{g4-k z&y6=Fs=cbL@rvHCHoAUN%tPnN6SH>g+-^-xG1^_~;EN?IQHcQ`Siw<|i0n z^c1zLE%5^x?CvP>gFeQSH=buLcB}4!L_`Y|s;cYX5$60Ru-Jr!JoS4M%S$h^$5IgH zDzX^AjK!1Ll>9WRUeHE`BMe-t(uv0T49(OELOOWyw$SVZGY+i@aS2Foq|7$+G{ZlG zl#OUFcSvb4tLPW8o0|kfPiZta1JWEOr>B9=VR-}LpV!+%4_}9(@pPMeC~$r2<}RmH z=(O_)*o{hTC%T1NmC{+~D>b>jcOWG&S)46r_NP27tr+-w6~(OsXJ=+0ZVvq^s1$Pv z0JXN&F8G|VmAhHX0W$=2Oy(}_`%4AAErOmW?uraq-zq*I-)A3DYR<3t5w*8chZ`*3y_5Weme1m{3Un+xI@udS}9XM4T7`Fe)&T5#Y*Ity|q6bA=~?A6h3 z*=d`Vo;C93L_AxSsicUgD4Wd;B&uK;StJgd?Zrk3lQHZkdZ5gx6s97X{n>e++g^v2 z;ve9E`aH$r>b{n10nR|v;RfsFN|X6Y-C@jTpQ*J8PG@H8B_T1OO%s`HI4pJyzf6yN zjP!gAy!oowPXj5L`m0AQkPe*SmHa=%9JqY6M}+;_n~@$(g(g5>UKqrCrt`!QDMaL` z)Elg*e$B9i-j69xX>(Q4^y-noEmqfi7PPd~P~>->)dRZS^e}L6=}o4&(a~%ijyKIU zx0uW^%VAjam2ii=zGj@wKJT@&W#2tBwn`m+UcjW`6i6iz?xMa+6S(O1?R`a3^9lfs z9@tQr@iZ=q`KY+yr8-g5Bfj5wnp0|zTBfz!s5W1XwnQ;krEL^{5*I}ER1(}aEKSgq zENrP)g~Ix2u97Sow{U6oWpHd+_zyS1k2kYB`k36?#p1#lzLN}`iy~hHx~E^-^v+y|4~8cKYMac)V}c!*(?#QM%O~C9{`YPEz)wa{Kh0xxIS%KX|VRBf+)ns8W;v)wG8!_D9CQD^^L%LWYRjMhANO|JKG-2 zHqk|I0?P%SH?IvkLe?F7MB{xU=o5|Hi{rwlF1isI|t z55Nv}yV7C;FSA-}2ihBA=iCMZ3Y;N+*6TL72(CI9foD?Zw0r`7%~0occ<8p@I9_CY z5P}#SjiXb?pA?Rh7oD%ms&6PdlY{D5&GCb$Cjy@+8Hrcm^2c5)PRAGxZsHnHZ}Kxb?Ti-N&4UsJ za*)ENscc?}OYtG%bOaD^_0>G3v2D?4;h}zA%m}~Bsfg4K2!F)AP4WV-;E(BzR)XI; z6DgkQFzqX88G}-qTUWZ8CY;g18f_K{6HN3DhC+my!qMK(Jc&`a8GbV4?Bs2re;n&{ znx7nFv%bNi2P(?S%Cct&(}+!q1!@?ItMI1h-e|>QP-hL2!Hri#vjqZ&U=3pHHIZKI zvroXzydr2q9S=1dNSpm01g?q0>7w1dqhr|J3g1m9pI=<;5&*sX(UKG&$Cc|_@ngwo zA1EZFQmK+wt>U2sYx0 z6%~)mlYPs7t#g2^u*z0*$|M1P>dp=mn>bw2e#Yi|wP}t1xPNA7hxaWsFc;Q%7B?rz z%a0~P5<<8WW|PX56k#HXic+PD(UG}ounxE_O#9uq&*SNy9)uIyi63aSnt}X^52ilc zpO2-VRC}F{qGlE7=6+3?(Q>r)e7X2hY-f2+wmWleN=kqg*D3V_|ZI z9&`N_LN4&t(@1MN&uFaOy>>!&mv%iS>FX}jw_x}Rm5#wYaF`gFD2RsykCj$CRSF0Q+E;;F&Q{$_y^`SAS-QA5{yAJn`){zKIoh^O)y-}!ZG~C`U_e+p0 zB3lx2mE5l@M|LDS@o{%2ON))dFbDiY1Uv*h{9!5_q+abE1YFHNKJ}QSNGb5uH6!(E zOmZCcaA))IB4KD18s9$RE7Uk1_I>zx5w%xv&Bw!olzyGOg1S{S7$kwYggz$A}lZ9V1~$( z)bj}uQrJVDyy`SXMEK+kTtsxtxZ3%CP1;mlF_bIgIu?2zn6+Uto(*1F zr^_>NeMqOv`}RJbTXHf{11;3wMtDRz(evnVWH0YTtzK5r32qqt7$VEk;HRm}R&%Ab zbbmEBT_ALU-ne>QiG|oUqQ4f|M>5_WLt0|VJ-}HYoHob3E6^ZVJLk?sLD4pgdtCUl zu~ZZLFJQd_0+*p~mZd=$dbDVh@hZk9h|+8MjMPENU#AIPpFttBP7U_MAL~r0M!!C^ zyBT(%VWUtdY>M>>^i`t^%Gy(|A&+D^-Ji`@iB@S#;!d)pptbV2`c8-^QERf>56d<$ zKq^r{k&zNpd_g6x&}zB*?gu(;JV~yRE6|0@ttQ|05vSU;*Z7q~(t1c5JNglq2_v+0 z=vLE~J$ir$hr=c4!_cUa#Gd=EVTsZM4?LqUx+cdD{LA`>a3<;RDw0ZizSw>k<{IcBRSP*)UI(< zi`5?pgc1A>v*0b92F~CK>np-R3tg!2c`!klxQjtCK%E1Lxk27K{RtvSHY!u~B9tLi z2GmOpme-c7=M}670s=ynyJzc>9YuSI3n@GzjLc@aC$XEOulMH~A_WSZWhKF^Z`^Yb zJza$CF{{;}b(@AIYwvuyE$Pjspxk{RQN&~4q$$*@ITYijy z*VmVE7_^-|u~?wYKf;GEpCc<5H7Ty@&mWNkY?#tskPL4 z23}2QG{iw~2uG*v2%hL(<=v+o9E=)`Z580!fOc_4q@XkJS8m9|aX~C|7|zdirnCp- zx`iikY2N~+V`YDK;;_-~ARGuwO-)UtCA!u|#LbgOLfZQF%|KU?aoptLA$Hu(7bg%p z-J{uOsnh6sn8DytXucE>@Yz(W(-(etu5JUd37I=xI$deB>dE*#TV7TZ2%ku)VtmdV z=+N2Hk{Vi)nq4ImJgMb;zT!8F4RBj5^&?!|JgH1A8c*;B*S;S4Lxi_N`pt3#z1^Lz@SmceWlRWz3Rrqe!X48 zKYQx>$jiqyHcI<;>3DC0csQSZ-7JwurGjlQE;em%MvuSfMMEQzNbI*yX@t+=x%MbwMS*Q{F?#bT+OG=$m6-eA+nGi zVFRENvsUteB@{iBMuEx*M`FM!8D|OZYQQ-v77ISJDOwE_l{RfHWpd|)Zs+K=wY3x0 zuQkNw5i82Nbt!;tvEak!o9F{!k)hDP>DBDRS z?R0w&x9cFdyfVp!9e`gy0!~tn>fG!LkCL<&A*0<$Dw#+Bdu+2iTLOQ8golcGqw-u- z84eDPrTwd-bz-YVdN!^`=4&EjqD{4_I_bbP7UtQrS6rE>HL-Dv1)Ft135Wwc1}1`P zi#0dy^lZ7-2i_jNu5KpJ6MH(gD*D!C0ro8D%Q+H#PBS{MbF(UX1eVqs+JaEnAQF34CMUB}*0$P-}l7qXZ>u5Y2IpAj5x zM~!m1;0?+oaM8edgoX6GM%pS}G#bn*46$J3Xg4Wf32npq0yjCUZ6`I`nSqs%pz*0G z!NW;OB{N}5S2>*q!+D!8a`bA043azh^M!C1%Zl8|pJ9&LJ47&x0weWm(`hFk!_#6F0R0xwTetflOA-FPM| z{ZKLQHb1t|v$7!bv7yE8K7Ge?;tSPav+AXeg7Oz!e*;ArpGquSfs>FMw_Ipt+DA-vWAj>DL;Wd@l7< zgWg_wJs;@JS5yOP+JJL%X#~C)C@B08lb9AJP%MD_R*hoN+H6*hCW+{mFlH)tN1ZR(bl)s#92`Ye8O1g0ur zzHmi5srI#IWYeDiQUGx{Rbg)k_?}#kIPi}M`kNz&Ibv+=r{$np7)|aZ<}bmMB2<}z zy+-grRH{dK*y_Tide^9_$zZ&ts6VRAbBAOC{YI}V2ZzRtE2OAURKMMT7xZd!MYxdb zCPiscy27@HU!uVi5fQ!hXOU4rclUi#fN3`YMz$Qz7X+P-utH?e3h47J?HZ6H#C^Ud zI}M|}W4gQ}la|b6Kg|9#{S1d0P%B>%cU9XBMyEM5_hWEbFfdMBJT$7;I{HUm(KOU0 z6n%#nPS>{n_62_0CHm127BjC;6w)o}L10i&X;~Q-CT6X6kUINypM-#4CV%mj2S(u5 z1kOwB^F5dw0m>7gUc>+yxg=GDn6@HI7RV#H8=J_y1cfdEa)_9DqoMF(ue+Df%ReEK zi4Wrg(-|L-_*efOa+3nVT-)Iq@x9SVyVyoIB6qOkxP>i5y*309y8gj|FqBenxsdvi z0rDo)(r7UHejHE(r1UJv@V>3U;Sk8RVn8^%8wgAS&7%&Ac()N`>7q5G-Tldvt1p={ zxRMr&0H9zrG6ixQ-EhPFqP#r`a3KcQRSK@L0M08&aM=&c85OyL?H5Z4%VYLcjC%38 zLbT-CFLAlM_qqL#6=jDOP!y+HBC!=y!ZTLa6|&5&O=pcvxMHV zJevrAhe`iy*CAk~!$gzvC!o`ycsH!#%UIr)z$%=__A5{YqLRb>}#5%$pS@xX-6?t{QiP6)K zSpnL^1tg8`#oltZ+|>9@K_!g>k77WA3QSCL{Oo~7epnPquWewRs3C?hhAGu6%6wQK zb6Fd2LBkPmqhw+AT0k|3iMUZ&bSUw|5HW3qzp$e^6FG8nNPp5i{jp;KO z=F18NZT&V6F7}az1)QPVbN%gRempJCl4}ZT3XGyT`dGsol>p8O(gY2F7{#yO#JZtA zvlJL=zkXptL_j20ZdV2D8_Z__MTd1kVgO?uoSYnk}5(1OAz`q0silVr6D4S+OV|T-SRW1 zHiY*R3e8XfNMTr75=Gl9MUTt6%3Z6dbAsFx(zK2IP4@4u<$qJe!$`k2XL&*05OzJ= znUK-@%ft3enE@JR9~bt5Fk&&Jr#u2KhD!q#nk;Pf{&X4s>pyfQ^P$x$FjHFftDQJQ zZEP}wgYfoacU=b=QKayye7;^W8o6}wcRY3qw1d0V+`xeM_8v4H8Ea?7Z28DLJ5MbjIs1_I3>HTui)BT+f zBXx1}p!lG!=ro<#BJ0e49ip?tY1=(`GPBNPDr>O;^)NYHj##khkZ9w0+hhGyd%sd^ zI+?qo#k-KIYa=9lEb&>TyyIy=^=H^6T@2t)2(;I`Wu<6t3yWz}TPw5UU9S%8Y;9%h z&}h7+rNqyML&P$%IRFmt{n<)nWN689&f8RR0pc^$4I};e)XkpFqg9Nbl}a9^mx^6b z#8LM9<+psT)XW3|umnX$27>>`-CK9%)jZpxfe>7RySrO(cZc8)?(XjHP7>VRU4vV2 z3-0djZg;)s+AD-Jn87Wyv9F;c+`KQQqY{2NWX^QjZFwNkC z!HY0p<3(Dz#H-?b5F z%iVgYvvBfeWw~R*!&CTt23DE_j^-~eE}#%nsEQOs{JTENlNnXVqOz@;Gc$J#l}CO? zDT=9fiPOndzObn()g}NnF*DiJvb>sO!$|*ES@rj3bBCAtO4aHh$?2OVC+%DzyP&Ue zgl0FU6F7^-7Y9R@6PM1!3=ORp6Cdvskx+#>nWWY^8YG5UnnyyV zE4eu{s9^hW4r>H@H1oV^er1nm7gCgMwbQU@jST5y!Oz#!d~$w$RGe*5+M|O+I9;fx zv}TTkm`2Oqf=Ed4J=u>TeuDyvR}$jh%PltLE``!CSB~qk#iAmnWJ_xZr|nO=rsnT4 z+?A0yH3Di-80>5#!}1%x(gzAB8;c|~Y0&>%)RF|gkp3?6Y9aO_;J=oCdb9CbTR7L% zuRh+F8^uaw8||Z}B=ha3mAnG-s}2-0$Dna<#~VX!SzGd+)qnQ!a zl25g(umrF36{=ou6zSeiopv|W>IZrl9@~dg3fcVQI={asx{7%}&vvO_lutB|jVWuS z=SMc_5&bHfe+ztmy(eM$ESdfOmey>UdS2uc5%=JE$IZ-qb+TYBgUQJ6wtreXbKf<< zBVwEBXBuDMWWC%ZHz_!|6ERp~(ARXnyj0_`12ADYGb`$A1Fkbynzn?NeA`GXoc~-b z*3pw}&xAM~h{xa#lGy3C@dG*Qdwd=SokkWj`L$-d4NHr+NUz_uwZod}G4pd)L*%5< zDmqFjG9K>d(MKZU(bjWCF^;uk@?V^cP=Advh()}Q{gzBbdq^e+YU1Ye4Hg_^lf=G7 zsT!}%LjQXT>w9Zttqz_&Uw};I{M7IjYscixyEJ$Sdnf0BLRR#&fep28UBN!%6YOS8 zB5ruNocjy0n(Z_p4ovx<^&Yj}ksY-C6tUv0KFNfX6yr2?trTekU=Lx5=&pW@NuMt} zF)v*~tV#16>pPMfS&_=m-*MBv>&Z?^3a#bWwwn_eB!>tQlVR)oMWRaj#Zg1GGIA1$ z(6}hRZf|s*)9V)o9-UUNmASFi3Zb0= z5K*twTC4Bpt;IzU=7AQMamD4~A#MSw%-Q^MpG7;H@k zO4co_ts!(3bMB$9&vT;_YpnoCB&G(a4kR<`R47;bnoEY8y3&X9wfl9sZTRBg;N)Ql zy-)Rp?TxB;2UP?5D(p7%4Qgwx)AK@~dG61alq=I*N?8gWBA*Ph+C8l1N`oSG9G$)Q zw-n2)Q* z+^sdTTL)mFitSo)1cz?qf<%mG(wxiMt@gx3n{rhdTq_NBdbN&)K`-}O7`4U=$eWA! z+=~q!H-G>BeK0WiOVo_{HE#B^*TcY{KTVb^0}F%2K*HH%BuT9OaIxLsjX-N<1`!d+ zW=OVrKC$qNeg4eM`Re^Pk=Ya%{TfZ1?2?D}!x=hP;!<*?e+hf1*rz!5v=zg}K~%KB zJf1Z9RytUHD#mKT!DhZh6_qq>F49k}M1|Tf;8nF;L%`Gi<8g|#0_Hc$Xd)vLwhKax zFQ4ajF(vDLOY3hU$Kh*}6ZL9re#>u>eKS)}P6rKVe{K7h*|dw9x(ARVI}bO*3oT!Z zh(m~QEDm|JDL~h*SG^%6B_+VL0v8aS*3Cz*Yp0c1d|H)?ct8^Y4=p(TlXvvgi##S{ zClUg!UafGt>)8*oc3KP?l@yu0-rwh&>ec!AK_jyz8mNu^i6of6wVi93Yhw`)_*S#G zVFQ*-MqURZl$Blr)(aVv57IhmtVlhOouHxtGrur?ZU_&LgF7n%O z{!C+8sTjYGD69;&=49`O&lqxZH4>#;l;sju-NDXbqNW!QWYx?A5x*I#x!s z2t{5X|Aj3h$Y(TXlE6+c*VxE6@-b6HW(zBvd36=xjy_c04PE*J9M{Z{6;3r8O*mxw zGO}>Aij&J=q}k$a;LYn^kf?jo?r7WZD#&Od_N+XKkx^NmJ@NYC26Ml^`83D(O&(9c z68Lkww8ytP>1b+;xyHrka(3@qZj8UZx(9$-WsLr7d3zWRPycFyV zEF|Cp;FqLE-#2`L7!vYhdp{;!?qmUzyTtGLacXc7bBQ>*tJ?iFlRh2INY+_4pWEg2 z)tjD>2-`y!1K4oj`$EzIf4C~ z#%3L^VX}JwtuNtq_3(N$1E|_fV+awHlZD=1WYe!KJQ(DDe!dOKZZC1^wXD!;!P$7A z+i!R)1x7{8YcNIy5Azxe4+j%a`D1E4|kCL%coH z&Y)G0W+NjfXG&`7`Fd?VfIGlil=c@)Z=k){XbZ#Ee}YBtT@M3lVuW2d8xW6-8V%v- z2*sZo2i%Hl9a#m2_wK9IL%9WR3{74}s-z?$8fiRo{b@7ZyK6lyAsBBl&f%dPYubXe5^ zih-wV++2y^%CDggY#tsS*qBUPKNcT9Va{^B%na0#k`rJ;pMHr+XY1P?Ia}w0HabV! zJV2WHG)VqNFn_{`FK#lp6g=(m~ zqbP@v^iR)d>}cBjmFetoNM1-rc?V9DK#Fuq=Z8$*DzG`pV)2QK=-{V|Zj!h-+Y6Fa zp;6n59d4?Cf5vd^F%0yAtGZHQjI2zzW=hiketC1n<$H^Dy&dnG)IdC~6@Qqw-ZeOX zW;@agCY#-4y9B}7a2BhxBOaq)7(M_WWt^?F*Q=sx%aa$Sa(vXhp5+dt!IW=W|4Y+`<^Ai>@2f z`%<%^ZFH178nQC;_lzee3x#H<2j~Qy2rav37tM>-*{wu7kgSS!??99;zRme#*x>Qr zUrqPxmYWm8`F*07ZRISdGd?E^t5zuS+huRJ>#1T*oMQkX47tQFD;qe@taWjQ#IAD{ z@MC+R{J}=8?J=Z3Tsq?E=b~j|{l$y94C$K1U>3fUjE@H!hmtkn_m&1JTh%lL79go% z3=K98KlM{e`gx9Ku{H3jbLAbV+KT(eDyvBMytZ7zPDgvT4W2&TJR{(R*D>X{ojH27 zk99EY`P<}4{>ZZzz~G}Y8XnhV-}o)&O8D`3HG{vf()98`9Bo#Rf66|o@gI$HVjDUf?xz=Ynb$aM|JJq0_S6XlP?eHAONnz^C^u2EIBiej= zeQF#{4zb0Dx<3o?@U4tNP%@w%Too*l!y2eZd!6mv-?p|ig?xbU9v;_g=QOLzkTw1L zH`g5+X%K8*H~gXo%GOpwA*;e%)#LUz3?NU0FW~6hn}GK1F=o!L+kZzQb~B1_IR%n> zz{~9djZWLVKh4EmrM$G%#P6C6XQDhf+uYuvYu{0ZL5pDky!oQ7XYz}|pcCReTSfEA z`EYK!h;3BLYvW3@A{9YcFT)KG3rk!`_VScLI=tB(SWNEvVX>K)-k(b&VYk_kEf;HT zv;gTF4x3+mZ&aEUR27P=Vc8zY(?*{?x&RegCyDrvZgtSJN%b^osZ=kLhTR7-x5y78yz1L5#y^*+nzg#`>`c3J)-gi<~;uZW?3Y}@T1Rk;|6fCs2$+0p^r|*gVn_sBky4zznEEC`iNxwv33{g1 zv0?ONCv4`Q4Dj;WNZbs%MLl;~?^yT82slMeIeNbQo-;K9idx7?;7Ev`w3zr=89Nxp z^}ZrNj*MyIhueC^(sUHKt+r$@*e}=$&HDZEGXe9j@&>FOKTeM*&gkHMp`md}9x%ur zfTM$NbG2d{2K-=3XIW{f%piPM{)j3fUnJs@4U`+w79X~P+TOZ6x@yYcXopV(x1!Vr zbs1Az&gKU=4r;M10hcS?uLKMZyDO3@{KOL#C5CDNOjEEU(6#rw?0GZ#YTIRrzfXQ) zndsKT-CVhS>F;glFPB$7K0HfDaaQ$wHAwSX8Qd8H2k*NMna_7;3QLTS4;xuN#vHP| zt#JyE2DD(>hF0v>`b!SOdi}{>bu0M|irz#*ps77N8hpKPd0H6Pu~>YbuLV+%Bz^P@ zbJ>IyhK~upUoOd}+@RWih1=fQ7yO)0^;0z%tI+Kf<}|&O8^0Sx2oI$-4$cJ7xQ{k{ zx0fsYJc+s{z1xp@>VVQj%K9Zat?ZrwI*k2OC3`wk%F{DHxsfh6{PX?A#oO|U$fFl~ zG!h|a&CwjKdFP2IZnhU9p77+n-QTYYKY{WDli3!y@!(Nm6lOZR6}#;;S@0G8)8mxU zX%oYne6=yT)?K$#PnzrUI>AmDEdYKw30^sQz$}_&=NM8P7w#G?;>qSA2VqVP5{|m> ziD6lP-5WQ_D)u=>%UaI+9qQSX6IaXGh_BLOD3odz+&2?10hW!E^n9+@cb$c;g�Y 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 Iu)hEQ0cyy)-2eap literal 0 HcmV?d00001 diff --git a/docs/patterns/images/arm-1.29-addon.png b/docs/patterns/images/arm-1.29-addon.png deleted file mode 100644 index 65119bc6279547cd9f4822cd949d737a6dab2da6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113304 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

3ZG{x?(+Y4g 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 diff --git a/docs/patterns/images/arm-add-on.png b/docs/patterns/images/arm-add-on.png new file mode 100644 index 0000000000000000000000000000000000000000..0d60a4d8e7d0763e003e50bd4bade63a672dc702 GIT binary patch literal 123809 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

#ozuSof=S1tW;FB>N9FJW0!{ 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 AUjP6A literal 0 HcmV?d00001 diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts index 3e2887b9..07f2d342 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts @@ -61,7 +61,6 @@ export class CrossplaneHelmProviderAddon implements blueprints.ClusterAddOn { kind: "Provider", metadata: { name: "helm-provider" }, spec: { - // package: "xpkg.upbound.io/crossplane-contrib/provider-helm:v0.18.1", package: 'xpkg.upbound.io/crossplane-contrib/provider-helm:'+this.helmProviderVersion, runtimeConfigRef: { diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts index 8de77e69..1154fdb3 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts @@ -15,7 +15,6 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { @dependable(UpboundCrossplaneAddOn.name) deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { const cluster = clusterInfo.cluster; - // const packageUrl = 'xpkg.upbound.io/crossplane-contrib/provider-kubernetes:'+this.k8sProviderVersion; const roleBinding = { apiVersion: "rbac.authorization.k8s.io/v1", @@ -60,8 +59,6 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { kind: "Provider", metadata: { name: "kubernetes-provider" }, spec: { - // package: "xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0", - // package: "xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0", package: 'xpkg.upbound.io/crossplane-contrib/provider-kubernetes:'+this.k8sProviderVersion, runtimeConfigRef: { name: "kubernetes-runtime-config" diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index b80d518b..eef8ee8c 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -7,7 +7,7 @@ import { UpboundCrossplaneEKSProviderAddOn } from './custom-addons/upbound-cros import { CrossplaneK8sProviderAddon } from './custom-addons/crossplane-k8s-provider-addon'; import { CrossplaneHelmProviderAddon } from './custom-addons/crossplane-helm-provider-addon'; -const gitUrl = 'https://github.com/ajpaws/eks-blueprints-workloads.git'; +const gitUrl = 'https://github.com/aws-samples/eks-blueprints-workloads.git'; const k8sProviderVersion = 'v0.13.0'; const UpboundEKSProviderVersion = 'v1.1.0'; // const helmProviderVersion = 'v0.18.1'; diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 35e5b58b..96766d7a 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -52,7 +52,7 @@ export default class MultiClusterPipelineConstruct { const account : string = props.account; const gitProps = { - owner :'ajpaws', + owner :'aws-samples', secretName : props.gitHubSecret ?? 'cdk_blueprints_gitops_github_secret', repoName : 'cdk-eks-blueprints-patterns', revision : 'main' // use this to target a certain branch for deployment From 2e5d7099db0768259b825160100e614c052e3f08 Mon Sep 17 00:00:00 2001 From: jalawala Date: Tue, 27 Aug 2024 10:00:38 +0530 Subject: [PATCH 24/43] creating dedicated IRSA role for EKS Provider --- .../upbound-crossplane-eks-provider-addon.ts | 31 +++++++++++++++++-- .../management-cluster-builder.ts | 3 +- .../multi-cluster-pipeline.ts | 2 +- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts index 11c64ae6..698c9bd0 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts @@ -4,6 +4,7 @@ import * as eks from "aws-cdk-lib/aws-eks"; import { Construct } from 'constructs'; import { dependable } from '@aws-quickstart/eks-blueprints/dist/utils'; import { UpboundCrossplaneAddOn } from './upbound-crossplane-addon'; +import { Policy, PolicyDocument} from 'aws-cdk-lib/aws-iam'; export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddOn { id?: string | undefined; @@ -14,7 +15,33 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO @dependable(UpboundCrossplaneAddOn.name) deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { const cluster = clusterInfo.cluster; - const crossplaneIRSARole = clusterInfo.getAddOnContexts().get("UpboundCrossplaneAddOn")!["arn"]; + + // Create the CrossPlane AWS Provider IRSA. + const serviceAccountName = "provider-aws-eks"; + const upboundNamespace = "upbound-system"; + const sa = cluster.addServiceAccount(serviceAccountName, { + name: serviceAccountName, + namespace: upboundNamespace, + + }); + sa.role.attachInlinePolicy(new Policy(cluster.stack, 'eks-workload-connector-policy', { + document: PolicyDocument.fromJson({ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": ["sts:AssumeRole"], + "Resource": `arn:aws:iam::${cluster.stack.account}:role/eks-workload-connector-role` + }, + { + "Effect": "Allow", + "Action": ["eks:*"], + "Resource": `*` + } + ] + })})); + + // const crossplaneIRSARole = clusterInfo.getAddOnContexts().get("UpboundCrossplaneAddOn")!["arn"]; const controllerConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "ControllerConfig", { cluster: cluster, manifest: [ @@ -24,7 +51,7 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO metadata: { name: "aws-config", annotations: { - "eks.amazonaws.com/role-arn": crossplaneIRSARole + "eks.amazonaws.com/role-arn": sa.role.roleArn } }, spec: {}, diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index eef8ee8c..4ba902ed 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -7,7 +7,8 @@ import { UpboundCrossplaneEKSProviderAddOn } from './custom-addons/upbound-cros import { CrossplaneK8sProviderAddon } from './custom-addons/crossplane-k8s-provider-addon'; import { CrossplaneHelmProviderAddon } from './custom-addons/crossplane-helm-provider-addon'; -const gitUrl = 'https://github.com/aws-samples/eks-blueprints-workloads.git'; + +const gitUrl = 'https://github.com/ajpaws/eks-blueprints-workloads.git'; const k8sProviderVersion = 'v0.13.0'; const UpboundEKSProviderVersion = 'v1.1.0'; // const helmProviderVersion = 'v0.18.1'; diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 96766d7a..35e5b58b 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -52,7 +52,7 @@ export default class MultiClusterPipelineConstruct { const account : string = props.account; const gitProps = { - owner :'aws-samples', + owner :'ajpaws', secretName : props.gitHubSecret ?? 'cdk_blueprints_gitops_github_secret', repoName : 'cdk-eks-blueprints-patterns', revision : 'main' // use this to target a certain branch for deployment From 7bdb3db855c99038d47fbffa2c77abd0ca5e9e08 Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 28 Aug 2024 10:21:55 +0530 Subject: [PATCH 25/43] creating dedicated iam role for eks provider pod --- .../upbound-crossplane-eks-provider-addon.ts | 78 ++++++++++++++----- 1 file changed, 60 insertions(+), 18 deletions(-) diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts index 698c9bd0..66089106 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts @@ -22,7 +22,6 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO const sa = cluster.addServiceAccount(serviceAccountName, { name: serviceAccountName, namespace: upboundNamespace, - }); sa.role.attachInlinePolicy(new Policy(cluster.stack, 'eks-workload-connector-policy', { document: PolicyDocument.fromJson({ @@ -41,23 +40,67 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO ] })})); - // const crossplaneIRSARole = clusterInfo.getAddOnContexts().get("UpboundCrossplaneAddOn")!["arn"]; - const controllerConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "ControllerConfig", { + // // const crossplaneIRSARole = clusterInfo.getAddOnContexts().get("UpboundCrossplaneAddOn")!["arn"]; + // const controllerConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "ControllerConfig", { + // cluster: cluster, + // manifest: [ + // { + // apiVersion: "pkg.crossplane.io/v1alpha1", + // kind: "ControllerConfig", + // metadata: { + // name: "aws-config", + // annotations: { + // "eks.amazonaws.com/role-arn": sa.role.roleArn + // } + // }, + // spec: {}, + // }, + // ], + // }); + + const runtimeConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "runtimeConfig", { cluster: cluster, manifest: [ { - apiVersion: "pkg.crossplane.io/v1alpha1", - kind: "ControllerConfig", - metadata: { - name: "aws-config", - annotations: { - "eks.amazonaws.com/role-arn": sa.role.roleArn - } + apiVersion: "pkg.crossplane.io/v1beta1", + kind: "DeploymentRuntimeConfig", + metadata: { + name: "aws-eks-runtime-config" }, - spec: {}, + spec: { + deploymentTemplate: { + spec: { + replicas: 1, + selector: {}, + template: {} + } + }, + serviceAccountTemplate: { + metadata: { name: "provider-aws-eks" } + } + } }, ], - }); + }); + // const runtimeConfig = { + // apiVersion: "pkg.crossplane.io/v1beta1", + // kind: "DeploymentRuntimeConfig", + // metadata: { + // name: "aws-eks-runtime-config" + // }, + // spec: { + // deploymentTemplate: { + // spec: { + // replicas: 1, + // selector: {}, + // template: {} + // } + // }, + // serviceAccountTemplate: { + // metadata: { name: "provider-aws-eks" } + // } + // } + // }; const awsEksProvider = new eks.KubernetesManifest(clusterInfo.cluster.stack, "EKSProvider", { cluster: cluster, @@ -69,17 +112,16 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO name: "provider-aws-eks", }, spec: { - // package: "xpkg.upbound.io/upbound/provider-aws-eks:v1.1.0", package: 'xpkg.upbound.io/upbound/provider-aws-eks:'+this.UpboundEKSProviderVersion, - controllerConfigRef: { - name: "aws-config" - } + runtimeConfigRef: { + name: "aws-eks-runtime-config" + } }, }, ], }); - awsEksProvider.node.addDependency(controllerConfig); - return Promise.resolve(controllerConfig); + awsEksProvider.node.addDependency(runtimeConfig); + return Promise.resolve(runtimeConfig); } } From f68efa839ce7a729cef62e86ab6aa9cfcd84302f Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 28 Aug 2024 15:48:43 +0530 Subject: [PATCH 26/43] automating secret creation --- .../custom-addons/secret-provider-secret.ts | 31 +++++++++++++++++++ .../management-cluster-builder.ts | 6 +++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 lib/crossplane-argocd-gitops/custom-addons/secret-provider-secret.ts diff --git a/lib/crossplane-argocd-gitops/custom-addons/secret-provider-secret.ts b/lib/crossplane-argocd-gitops/custom-addons/secret-provider-secret.ts new file mode 100644 index 00000000..b076763f --- /dev/null +++ b/lib/crossplane-argocd-gitops/custom-addons/secret-provider-secret.ts @@ -0,0 +1,31 @@ + + +import { ApplicationTeam } from '@aws-quickstart/eks-blueprints'; +// import { Construct } from 'constructs'; +import 'source-map-support/register'; + +import * as blueprints from '@aws-quickstart/eks-blueprints'; + +export class TeamSpoc extends ApplicationTeam { + // constructor(scope: Construct) { + constructor() { + super({ + name: "argocd", + // users: getUserArns(scope, "team-burnham.users"), + teamSecrets: [ + { + secretProvider: new blueprints.GenerateSecretManagerProvider('github-token', 'github-token') + } + ] + }); + } +} + + +// const blueprint = blueprints.EksBlueprint.builder() +// .version("auto") +// .addOns(addOn) +// .teams(new TeamBurnham(app)) +// .build(app, 'my-stack-name'); + + diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index 4ba902ed..de38b264 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -6,6 +6,7 @@ import { UpboundCrossplaneAddOn } from './custom-addons/upbound-crossplane-addon import { UpboundCrossplaneEKSProviderAddOn } from './custom-addons/upbound-crossplane-eks-provider-addon'; import { CrossplaneK8sProviderAddon } from './custom-addons/crossplane-k8s-provider-addon'; import { CrossplaneHelmProviderAddon } from './custom-addons/crossplane-helm-provider-addon'; +import { TeamSpoc } from './custom-addons/secret-provider-secret'; const gitUrl = 'https://github.com/ajpaws/eks-blueprints-workloads.git'; @@ -69,6 +70,9 @@ export default class ManagementClusterBuilder { .version(eks.KubernetesVersion.V1_29) .enableNativePatternAddOns() .enableControlPlaneLogging() - .addOns(...addOns); + .addOns(...addOns) + .teams(new TeamSpoc()); } } + + From 152fc70566174e531c5945a71f1726e0d3f390f6 Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 28 Aug 2024 17:35:03 +0530 Subject: [PATCH 27/43] automating argocd secret creation --- .../custom-addons/secret-provider-secret.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/crossplane-argocd-gitops/custom-addons/secret-provider-secret.ts b/lib/crossplane-argocd-gitops/custom-addons/secret-provider-secret.ts index b076763f..9c6bb5b1 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/secret-provider-secret.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/secret-provider-secret.ts @@ -14,7 +14,7 @@ export class TeamSpoc extends ApplicationTeam { // users: getUserArns(scope, "team-burnham.users"), teamSecrets: [ { - secretProvider: new blueprints.GenerateSecretManagerProvider('github-token', 'github-token') + secretProvider: new blueprints.LookupSecretsManagerSecretByName('github-token', 'github-token') } ] }); From 8ae1ea750ce59873b29de78b39013766bedd5f07 Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 28 Aug 2024 18:09:43 +0530 Subject: [PATCH 28/43] cleanup and doc update --- docs/patterns/crossplane-argocd-gitops.md | 114 ++++-------------- .../custom-addons/secret-provider-secret.ts | 13 -- .../upbound-crossplane-eks-provider-addon.ts | 39 +----- .../management-cluster-builder.ts | 1 - .../multi-cluster-pipeline.ts | 2 +- 5 files changed, 24 insertions(+), 145 deletions(-) diff --git a/docs/patterns/crossplane-argocd-gitops.md b/docs/patterns/crossplane-argocd-gitops.md index 8a0433d9..375e3732 100644 --- a/docs/patterns/crossplane-argocd-gitops.md +++ b/docs/patterns/crossplane-argocd-gitops.md @@ -43,6 +43,8 @@ Ensure that you have installed the following tools on your machine. 5. [helm](https://helm.sh/docs/intro/install/) 6. GitHub Access Token for this repo and AWS secret +### Create AWS Secret Manager Secret + Create a plain-text Amazon secret to hold a fine-grained GitHub access token for this repo in the desired region, and set its name as a value to the GITHUB_SECRET environment variable. Default value is `cdk_blueprints_github_secret`. @@ -63,6 +65,25 @@ The Secret will look like this in the AWS Console. ![AWS Secret for CodePipeline](./images/aws_secret_codepipeline.png) + +### GitHub Access Token for the `GitOps` repo + +In the [GitOps](https://github.com/aws-samples/eks-blueprints-workloads) repository, there are some ArgoCD Application configuration files, which in turn points to Crossplane Manifest files. These Crossplane Manifest files will be applied by ArgoCD in the Management Cluster to deploy EKS add-ons, Kubernetes Manifests and Helm charts into the workload clusters. To configure access to this repo for ArgoCD Repo Server, you need to create a GitHub token to access the `GitOps` repo. First create a plain-text Amazon secret `github-token` AWS Secret Manager, to hold a fine-grained GitHub access token for `GitOps` repo. + +```shell +export GIT_OPS_GITHUB_PAT_TOKEN= +export GIT_OPS_AWS_SECRET_NAME="github-token" +aws secretsmanager create-secret --region $AWS_REGION \ + --name $GIT_OPS_AWS_SECRET_NAME \ + --description "GitHub Personal Access Token for ArgoCD to access Grossplane Manifests" \ + --secret-string $GIT_OPS_GITHUB_PAT_TOKEN +``` + +#### SecretProviderClass object in Management Cluster + +We will create SecretProviderClass object in `team-argocd` Namespace as part of the Management cluster creation. This will be used by the ArgoCD Controller to reconcile the ArgoCD Application Manifest file in the GitOps repository. + + ## Deploy 1. Clone the repository and install dependency packages. This repository contains CDK v2 code written in TypeScript. @@ -256,66 +277,6 @@ NAME STATUS ROLES AGE VERSION ip-10-0-96-158.ec2.internal Ready 6d9h v1.29.3-eks-ae9a62a ``` -### Update the Trust policy for the Upbound AWS EKS Provider IAM Role. - -The IAM Role used for IRSA for the Upbound AWS EKS Provider Pod needs to be updated as below to allow Service Accounts for all Upbound AWS Service specific providers to assume the Role. - -Go to the `mgmt-cluster-stage-mgmt-cluster-stage-blueprint` stack output tab and extract the role name from the `providerawssaiamrole` output. - -```shell -export providerawssaiamrole=$(aws cloudformation describe-stacks \ - --stack-name mgmt-cluster-stage-mgmt-cluster-stage-blueprint \ - --query 'Stacks[].Outputs[?OutputKey==`providerawssaiamrole`].OutputValue' \ - --output text | awk -F'/' '{print $2}') -echo $providerawssaiamrole -``` - -The output will look like below. - -```shell -mgmt-cluster-stage-mgmt-c-mgmtclusterstageblueprint-I8cnZsnO37rA -``` - -Get the OIDC for the `mgmt-cluster` value by running: - -```shell -export OIDC_VAL=$(aws eks describe-cluster --name "mgmt-cluster" --region "${AWS_REGION}" --query "cluster.identity.oidc.issuer" --output text | awk -F'/' '{print $5}') -echo $OIDC_VAL -``` - -The output will like below. - -```shell -0F745A41ECA76297CBF070C032932033 -``` - -Create the Updated Trust policy. Notice the `*` in `provider-aws-*` in the Conditions Section. - -```shell -export IAM_ROLE_TRUST_POLICY="provider-aws-mgmt-cluster-trust-policy.json" -cat > $IAM_ROLE_TRUST_POLICY < -export GIT_OPS_AWS_SECRET_NAME="github-token" -aws secretsmanager create-secret --region $AWS_REGION \ - --name $GIT_OPS_AWS_SECRET_NAME \ - --description "GitHub Personal Access Token for ArgoCD to access Grossplane Manifests" \ - --secret-string $GIT_OPS_GITHUB_PAT_TOKEN - - -cat > secret-store-argocd.yaml < Date: Wed, 4 Sep 2024 11:35:49 +0530 Subject: [PATCH 29/43] update README --- docs/patterns/crossplane-argocd-gitops.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/patterns/crossplane-argocd-gitops.md b/docs/patterns/crossplane-argocd-gitops.md index 375e3732..78365365 100644 --- a/docs/patterns/crossplane-argocd-gitops.md +++ b/docs/patterns/crossplane-argocd-gitops.md @@ -105,7 +105,7 @@ cdk bootstrap aws://$ACCOUNT_ID/$AWS_REGION ``` make build make list -make pattern aws-addon-clusters deploy +make pattern crossplane-argocd-gitops deploy ``` ## Cluster Access From fd22534905cea4a232faf5d36c7cc80370502659 Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 4 Sep 2024 11:56:42 +0530 Subject: [PATCH 30/43] fixing README Issues --- docs/patterns/pipeline-multi-env-gitops.md | 602 +++------------------ 1 file changed, 63 insertions(+), 539 deletions(-) diff --git a/docs/patterns/pipeline-multi-env-gitops.md b/docs/patterns/pipeline-multi-env-gitops.md index dbac3989..08fec903 100644 --- a/docs/patterns/pipeline-multi-env-gitops.md +++ b/docs/patterns/pipeline-multi-env-gitops.md @@ -1,575 +1,99 @@ -# GitOps based Multi Cluster Addon and Apps Managament using Crossplane and ArgoCD +# Pipeline Multi Environment Pattern ## Objective -The objective of this pattern is to provide GitOps based lifecycle management of Amazon EKS Addons, Kubernetes Applications and Helm charts across various workload clusters using ArgoCD and Crossplane deployed in a Management Cluster. This helps platform and application teams to simplify the process of deploying Addos and Apps from a central Management Cluster. In this Solution, we use CDK to deploy AWS CodePipeline which monitors this platform repo and deploy the Management and Workload Clusters using CDK EKS Blueprints. +1. Deploying an EKS cluster across 3 environments( dev, test, and prod ), with a Continuous Deployment pipeline triggered upon a commit to the repository that holds the pipeline configuration. +2. Configuring GitOps tooling (ArgoCD addon) to support multi-team and multi-repositories configuration, in a way that restricts each application to be deployed only into the team namespace, by using ArgoCD projects - -## Architecture - - -## Approach - -This blueprint will include the following: - -* AWS CodePipeline which deploy the Management and Workload Clusters -* A new Well-Architected EKS cluster `management-cluster` and two workload EKS Clusters `amd-1-29-blueprint` and `arm-1-29-blueprint` in the region and account you specify. -* [Amazon VPC CNI add-on (VpcCni)](https://docs.aws.amazon.com/eks/latest/userguide/managing-vpc-cni.html) into your cluster to support native VPC networking for Amazon EKS. -* The Management Cluster is deployed with the following Addons. - * Upbound Universal Crossplane Provider - * Upbound AWS Family Crossplane Provider - * Upbound AWS EKS Crossplane Provider - * Kubernetes Crossplane Provider - * Helm Crossplane Provider - * Secrets Store AddOn - * ArgoCD Addon -* The ArgoCD Addon is bootstrapped with [git-ops](https://github.com/aws-samples/eks-blueprints-workloads) which contains Crossplane Manifest files to deploy EKS Addons, Kubernetes Manifests and also Helm Charts. - -## GitOps confguration +### GitOps confguration For GitOps, the blueprint bootstrap the ArgoCD addon and points to the [EKS Blueprints Workload](https://github.com/aws-samples/eks-blueprints-workloads) sample repository. +The pattern uses the ECSDEMO applications as sample applications to demonstrate how to setup a GitOps configuration with multiple teams and multiple applications. The pattern include the following configurations in terms io: +1. Application team - it defines 3 application teams that corresponds with the 3 sample applications used +2. ArgoCD bootstrap - the pattern configure the ArgoCD addon to point to the [workload repository](https://github.com/aws-samples/eks-blueprints-workloads) of the EKS Blueprints samples +3. ArgoCD projects - as part of the ArgoCD addon bootstrap, the pattern generate an ArgoCD project for each application team. The ArgoCD are used in order to restrict the deployment of an application to a specific target namespace -## Prerequisites - -Ensure that you have installed the following tools on your machine. - -1. [aws cli](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) -2. [kubectl](https://Kubernetes.io/docs/tasks/tools/) -3. [cdk](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install) -4. [npm](https://docs.npmjs.com/cli/v8/commands/npm-install) -5. [helm](https://helm.sh/docs/intro/install/) -6. GitHub Access Token for this repo and AWS secret - -Create a plain-text Amazon secret to hold a fine-grained GitHub access token for this repo in the desired region, and -set its name as a value to the GITHUB_SECRET environment variable. Default value is `cdk_blueprints_github_secret`. - -> **WARNING:** When switching the CDK between region, remember to replicate this secret!!!! - -```shell -export ACCOUNT_ID=$(aws sts get-caller-identity --output text --query Account) -export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region') -export CDK_REPO_GITHUB_PAT_TOKEN= -export CDK_REPO_AWS_SECRET_NAME="cdk_blueprints_github_secret" -aws secretsmanager create-secret --region $AWS_REGION \ - --name $CDK_REPO_AWS_SECRET_NAME \ - --description "GitHub Personal Access Token for CodePipeline to access GitHub account" \ - --secret-string $CDK_REPO_GITHUB_PAT_TOKEN -``` - -The Secret will look like this in the AWS Console. - -![AWS Secret for CodePipeline](./images/aws_secret_codepipeline.png) - -## Deploy - -1. Clone the repository and install dependency packages. This repository contains CDK v2 code written in TypeScript. - -``` -git clone https://github.com/aws-samples/cdk-eks-blueprints-patterns.git -cd cdk-eks-blueprints-patterns -npm i -``` - -2. Execute the commands below to bootstrap the AWS environment - -``` -cdk bootstrap aws://$ACCOUNT_ID/$AWS_REGION -``` - -4. Run the following command from the root of this repository to deploy the pipeline stack: - -``` -make build -make list -make pattern aws-addon-clusters deploy -``` - -## Cluster Access - -### View the CodePipeline - -![codepipeline1](./images/codepipeline1.png) - -![codepipeline2](./images/codepipeline2.png) - -### Create Kube context to access the `management-cluster` - -Go to the CloudFormation Stack `mgmt-cluster-stage-mgmt-cluster-stage-blueprint` outputs and search for a key starting with `mgmtclusterstageblueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `management-cluster` - -The example command looks like below. - -```shell -aws eks update-kubeconfig --name management-cluster --region us-west-2 --role-arn arn:aws:iam::ACCOUNT_ID:role/mgmt-cluster-stage-mgmt-c-managementclusterAccessRo-XYSC5PKL8WnA -``` - -The output will look like below. - -```shell -Updated context arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/management-cluster in /Users//.kube/config -``` - -Set below environment variable to the above context - -```shell -export MANAGEMENT_CLUSTER_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/management-cluster" -echo "export MANAGEMENT_CLUSTER_CONTEXT=${MANAGEMENT_CLUSTER_CONTEXT}" >> ~/.bash_profile -``` -Run below command to validate the access to the `management-cluster` - -```shell -kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get node -``` - -The output will like below. - -```shell -NAME STATUS ROLES AGE VERSION -ip-10-0-116-4.ec2.internal Ready 6d8h v1.28.8-eks-ae9a62a -ip-10-0-175-104.ec2.internal Ready 6d8h v1.28.8-eks-ae9a62a -``` - - -Run below command to get list of Crossplane Providers deployed into the `management-cluster` - -```shell -kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providers.pkg.crossplane.io -``` - -The output will like below. - -```shell -NAME INSTALLED HEALTHY PACKAGE AGE -helm-provider True True xpkg.upbound.io/crossplane-contrib/provider-helm:v0.18.1 47h -kubernetes-provider True True xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0 25h -provider-aws-eks True True xpkg.upbound.io/upbound/provider-aws-eks:v1.1.0 8d -upbound-provider-family-aws True True xpkg.upbound.io/upbound/provider-family-aws:v1.4.0 8d -``` - - -Run below command to get the Crossplane Providers pods to the `management-cluster` - -```shell -kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get pod -n upbound-system -``` - -The output will like below. - -```shell -NAME READY STATUS RESTARTS AGE -crossplane-594b65bfdb-pgkxf 1/1 Running 0 6d8h -crossplane-rbac-manager-86c74cf5d-tjcw8 1/1 Running 0 6d8h -helm-provider-4d90a08b9ede-7c874b858b-pp26d 1/1 Running 0 47h -kubernetes-provider-a3cbbe355fa7-55846cfbfb-6tpcl 1/1 Running 0 25h -provider-aws-eks-23042d28ed58-66d9db8476-jr6mb 1/1 Running 0 6d8h -upbound-provider-family-aws-bac5d48bd353-64845bdcbc-4vpn6 1/1 Running 0 6d8h 8d -``` - - -Run below command to get the ArgoCD pods deployed into the `management-cluster` - -```shell -kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get pod -n argocd -``` - -The output will like below. - -```shell -NAME READY STATUS RESTARTS AGE -blueprints-addon-argocd-application-controller-0 1/1 Running 0 24h -blueprints-addon-argocd-applicationset-controller-7b78c7fc94ls9 1/1 Running 0 24h -blueprints-addon-argocd-dex-server-6cf94ddc54-dfhv7 1/1 Running 0 24h -blueprints-addon-argocd-notifications-controller-6f6b7d95cdd2tl 1/1 Running 0 24h -blueprints-addon-argocd-redis-b8dbc7dc6-h4bs8 1/1 Running 0 24h -blueprints-addon-argocd-repo-server-fd57dc686-zkbsm 1/1 Running 0 4h15m -blueprints-addon-argocd-server-84c8b597c9-98c95 1/1 Running 0 24h -``` - - -### Create Kube context to access the `amd-1-29-blueprint` - -Go to the CloudFormation Stack `amd-1-29-amd-1-29-blueprint` outputs and search for a key starting with `amd129blueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `amd-1-29-blueprint` +You can find the App of Apps configuration for this pattern in the workload repository under the folder [`multi-repo`](https://github.com/aws-samples/eks-blueprints-workloads/tree/main/multi-repo). -The example command looks like below. - -```shell -aws eks update-kubeconfig --name amd-1-29-blueprint --region us-west-2 --role-arn arn:aws:iam::ACCOUNT_ID:role/eks-connector-role -``` - -The output will look like below. - -```shell -Added new context arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/amd-1-29-blueprint to /Users/jalawala/.kube/config -``` - -Set below environment variable to the above context - -```shell -export WORKLOAD_CLUSTER1_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/amd-1-29-blueprint" -echo "export WORKLOAD_CLUSTER1_CONTEXT=${WORKLOAD_CLUSTER1_CONTEXT}" >> ~/.bash_profile -``` -Run below commands to validate the access to the `amd-1-29-blueprint` - -```shell -kubectl --context $WORKLOAD_CLUSTER1_CONTEXT get node -``` -The output will look like below. - -```shell -NAME STATUS ROLES AGE VERSION -ip-10-0-96-158.ec2.internal Ready 6d9h v1.29.3-eks-ae9a62a -``` +## Prerequisites -### Create Kube context to access the `arm-1-29-blueprint` +1. Fork this repository to your GitHub organisation/user +2. Clone your forked repository +3. Install the AWS CDK Toolkit globally on your machine using -Go to the CloudFormation Stack `arm-1-29-arm-1-29-blueprint` outputs and search for a key starting with `arm129blueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `arm-1-29-blueprint` + ```bash + npm install -g aws-cdk + ``` -The example command looks like below. +4. `github-ssh-key` - must contain GitHub SSH private key as a JSON structure containing fields `sshPrivateKey` and `url`. This will be used by ArgoCD addon to authenticate against ay GitHub repository (private or public). The secret is expected to be defined in the region where the pipeline will be deployed to. For more information on SSH credentials setup see [ArgoCD Secrets Support](https://aws-quickstart.github.io/cdk-eks-blueprints/addons/argo-cd/#secrets-support). -```shell -aws eks update-kubeconfig --name arm-1-29-blueprint --region us-west-2 --role-arn arn:aws:iam::$ACCOUNT_ID:role/eks-connector-role -``` +5. `github-token` secret must be stored in AWS Secrets Manager for the GitHub pipeline. For more information on how to set it up, please refer to the [docs](https://docs.aws.amazon.com/codepipeline/latest/userguide/GitHub-create-personal-token-CLI.html). The GitHub Personal Access Token should have these scopes: + 1. *repo* - to read the repository + 2. *admin:repo_hook* - if you plan to use webhooks (enabled by default) -The output will look like below. +6. Create the relevant users that will be used by the different teams -```shell -Added new context arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/arm-1-29-blueprint to /Users/jalawala/.kube/config -``` + ```bash + aws iam create-user --user-name frontend-user + aws iam create-user --user-name nodejs-user + aws iam create-user --user-name crystal-user + aws iam create-user --user-name platform-user + ``` -Set below environment variable to the above context +7. Install project dependencies by running `npm install` in the main folder of this cloned repository -```shell -export WORKLOAD_CLUSTER2_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/arm-1-29-blueprint" -echo "export WORKLOAD_CLUSTER2_CONTEXT=${WORKLOAD_CLUSTER2_CONTEXT}" >> ~/.bash_profile -``` -Run below commands to validate the access to the `arm-1-29-blueprint` +8. In case you haven't done this before, bootstrap your AWS Account for AWS CDK use using: -```shell -kubectl --context $WORKLOAD_CLUSTER2_CONTEXT get node -``` -The output will look like below. + ```bash + cdk bootstrap + ``` -```shell -NAME STATUS ROLES AGE VERSION -ip-10-0-96-158.ec2.internal Ready 6d9h v1.29.3-eks-ae9a62a -``` +9. Modify the code in your forked repo to point to your GitHub username/organisation. This is needed because the AWS CodePipeline that will be automatically created will be triggered upon commits that are made in your forked repo. Open the [pattenrn file source code](../../lib/pipeline-multi-env-gitops/index.ts) and look for the declared const of `gitOwner`. Change it to your GitHub username. -### Update the Trust policy for the Upbound AWS EKS Provider IAM Role. +10. *OPTIONAL* - As mentioned above, this pattern uses another repository for GitOps. This is the ArgoCD App of Apps configuration that resides in the [aws-samples](https://github.com/aws-samples/eks-blueprints-workloads/tree/main/multi-repo) organisation. If you would like to modify the App of Apps configuration and customise it to your needs, then use the following instructions: -The IAM Role used for IRSA for the Upbound AWS EKS Provider Pod needs to be updated as below to allow Service Accounts for all Upbound AWS Service specific providers to assume the Role. + 1. Fork the [App of Apps](https://github.com/aws-samples/eks-blueprints-workloads/tree/main/multi-repo) workloads repo to your GitHub username -Go to the `mgmt-cluster-stage-mgmt-cluster-stage-blueprint` stack output tab and extract the role name from the `providerawssaiamrole` output. + 2. Modify the [pattern code](../../lib/pipeline-multi-env-gitops/index.ts) with the following changes: -```shell -export providerawssaiamrole=$(aws cloudformation describe-stacks \ - --stack-name mgmt-cluster-stage-mgmt-cluster-stage-blueprint \ - --query 'Stacks[].Outputs[?OutputKey==`providerawssaiamrole`].OutputValue' \ - --output text | awk -F'/' '{print $2}') -echo $providerawssaiamrole -``` + 1. Change the consts of `devArgoAddonConfig`, `testArgoAddonConfig`, and `prodArgoAddonConfig` to point to your GitHub username -The output will look like below. + 2. In the `createArgoAddonConfig` function, look for the `git@github.com:aws-samples/eks-blueprints-workloads.git` code under the `sourceRepos` configurations, and add another reference to your forked workload repository -```shell -mgmt-cluster-stage-mgmt-c-mgmtclusterstageblueprint-I8cnZsnO37rA -``` +## Deploying -Get the OIDC for the `management-cluster` value by running: +Once all pre-requisites are set you are ready to deploy the pipeline. Run the following command from the root of this repository to deploy the pipeline stack: -```shell -export OIDC_VAL=$(aws eks describe-cluster --name "management-cluster" --region "${AWS_REGION}" --query "cluster.identity.oidc.issuer" --output text | awk -F'/' '{print $5}') -echo $OIDC_VAL +```bash +make pattern pipeline-multienv-gitops deploy eks-blueprint-pipeline-stack ``` -The output will like below. +Now you can go to [AWS CodePipeline console](https://eu-west-1.console.aws.amazon.com/codesuite/codepipeline/pipelines), and see how it was automatically created to deploy multiple Amazon EKS clusters to different environments. -```shell -0F745A41ECA76297CBF070C032932033 -``` +### Notes -Create the Updated Trust policy. Notice the `*` in `provider-aws-*` in the Conditions Section. +1. In case your pipeline fails on the first run, it's because that the AWS CodeBuild step needs elevated permissions at build time. This is described in the official [docs](https://aws-quickstart.github.io/cdk-eks-blueprints/pipelines/#troubleshooting). To resolve this, locate `AccessDeniedException` in the CodeBuild build logs, and attach the following inline policy to it: -```shell -export IAM_ROLE_TRUST_POLICY="provider-aws-management-cluster-trust-policy.json" -cat > $IAM_ROLE_TRUST_POLICY < $EKS_ACCESS_IAM_POLICY_FILE < -export GIT_OPS_AWS_SECRET_NAME="github-token" -aws secretsmanager create-secret --region $AWS_REGION \ - --name $GIT_OPS_AWS_SECRET_NAME \ - --description "GitHub Personal Access Token for ArgoCD to access Grossplane Manifests" \ - --secret-string $GIT_OPS_GITHUB_PAT_TOKEN - - -cat > secret-store-argocd.yaml < -``` - -Add EKS Cluster to ArgoCD. - -```shell -argocd cluster add $MANAGEMENT_CLUSTER_CONTEXT -``` -The output will look like below. - -```shell -WARNING: This will create a service account `argocd-manager` on the cluster referenced by context `arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/management-cluster` with full cluster level privileges. Do you want to continue [y/N]? y -INFO[0004] ServiceAccount "argocd-manager" already exists in namespace "kube-system" -INFO[0004] ClusterRole "argocd-manager-role" updated -INFO[0005] ClusterRoleBinding "argocd-manager-role-binding" updated -Cluster 'https://0F745A41ECA76297CBF070C032932033.sk1.us-west-2.eks.amazonaws.com' added -``` - -Run the below command to get the list of ArgoCD Applications. - -```shell -argocd app list -``` - -The output will look like below. - -```shell -NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET -argocd/bootstrap-apps https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./common/testingClusters main -argocd/cluster1 https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./clusters/cluster1 main -argocd/cluster2 https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./clusters/cluster2 main -``` - - -### Validate EKS Addons deployment in Workload Clusters - -Run the below command to get the list of Crossplane AWS Provder Objects deployed in the Management Cluster. - -```shell -kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.aws.upbound.io -``` - -The output will look like below. - -```shell -NAME AGE -provider-config-aws-amd-1-29-blueprint 4h52m -provider-config-aws-arm-1-29-blueprint 4h52m -``` - -Run the below command to get the list of Crossplane AWS EKS Provder Addon Objects deployed in the Management Cluster. - -```shell -kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get addons.eks.aws.upbound.io -``` - -The output will look like below. - -```shell -NAME READY SYNCED EXTERNAL-NAME AGE -addon-eks-pod-identity-agent-amd-1-29 True True amd-1-29-blueprint:eks-pod-identity-agent 4h15m -addon-eks-pod-identity-agent-arm-1-29 True True arm-1-29-blueprint:eks-pod-identity-agent 4h15m -``` - -Go to the Workload EKS Clusters and Ensure that EKS Addon is deployed successfully. - -![amd-1-29-blueprint EKS Addon](./images/amd-1.29-addon.png) - - -![arm-1-29-blueprint EKS Addon](./images/arm-1.29-addon.png) - - -### Validate Kubernetes Manifests deployment in Workload Clusters - -Run the below command to get the list of Crossplane Kubernetes Provder Objects deployed in the Management Cluster. - -```shell -kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.kubernetes.crossplane.io -``` - -The output will look like below. - -```shell -NAME AGE -provider-config-k8s-amd-1-29-blueprint 4h31m -provider-config-k8s-arm-1-29-blueprint 4h40m -``` - -Run the below command to get the list of Namespaces in the Workload Cluster `amd-1-29-blueprint` - -```shell -kubectl --context $WORKLOAD_CLUSTER1_CONTEXT get ns -``` - -The output will look like below. - -```shell -NAME STATUS AGE -default Active 8d -external-secrets Active 8d -kube-node-lease Active 8d -kube-public Active 8d -kube-system Active 8d -test-namespace-amd-1-29-blueprint Active 4h9m -``` - - -Run the below command to get the list of Namespaces in the Workload Cluster `arm-1-29-blueprint` - -```shell -kubectl --context $WORKLOAD_CLUSTER2_CONTEXT get ns -``` - -The output will look like below. - -```shell -NAME STATUS AGE -default Active 8d -external-secrets Active 8d -kube-node-lease Active 8d -kube-public Active 8d -kube-system Active 8d -test-namespace-arm-1-29-blueprint Active 4h9m -``` - -### Validate Helm Chart deployment in Workload Clusters - -Run the below command to get the list of Crossplane Kubernetes Provder Objects deployed in the Management Cluster. - -```shell -kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.helm.crossplane.io -``` - -The output will look like below. - -```shell -NAME AGE -provider-config-helm-amd-1-29-blueprint 4h37m -provider-config-helm-arm-1-29-blueprint 4h46m -``` - -Run the below command to get the list of helm charts in the Workload Cluster `amd-1-29-blueprint` - -```shell -helm --kube-context $WORKLOAD_CLUSTER1_CONTEXT list -A -``` - -The output will look like below. - -```shell -NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION -blueprints-addon-external-secrets external-secrets 1 2024-05-07 05:25:31.465715836 +0000 UTC deployed external-secrets-0.9.9 v0.9.9 -test-helm-amd-1-29-blueprint default 1 2024-05-15 06:39:17.325950143 +0000 UTC deployed nginx-17.0.1 1.26.0 -``` - - -Run the below command to get the list of Helm Charts in the Workload Cluster `arm-1-29-blueprint` - -```shell -helm --kube-context $WORKLOAD_CLUSTER2_CONTEXT list -A -``` - -The output will look like below. - -```shell -NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION -blueprints-addon-external-secrets external-secrets 1 2024-05-07 05:26:52.028907405 +0000 UTC deployed external-secrets-0.9.9 v0.9.9 -test-helm-arm-1-29-blueprint default 1 2024-05-15 06:39:17.222351682 +0000 UTC deployed nginx-17.0.1 1.26.0 -``` + ``` +The above inconvenience has been fixed in the Blueprints framework as well as in the pattern, so please report such cases if you encounter them. This item is left here for reference in case customers modify the pattern to require additional permissions at build time. +2. This pattern consumes multiple Elastic IP addresses, because 3 VPCs with 3 subnets are created by this pattern. Make sure your account limit for EIP are increased to support additional 9 EIPs (1 per Subnets) From e58d132d2afaf801f279bf802dac7f5b270c1c82 Mon Sep 17 00:00:00 2001 From: jalawala Date: Tue, 10 Sep 2024 21:57:36 +0530 Subject: [PATCH 31/43] update README --- docs/patterns/crossplane-argocd-gitops.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/patterns/crossplane-argocd-gitops.md b/docs/patterns/crossplane-argocd-gitops.md index 78365365..fe58fe62 100644 --- a/docs/patterns/crossplane-argocd-gitops.md +++ b/docs/patterns/crossplane-argocd-gitops.md @@ -52,9 +52,9 @@ set its name as a value to the GITHUB_SECRET environment variable. Default value ```shell export ACCOUNT_ID=$(aws sts get-caller-identity --output text --query Account) -export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region') +export AWS_REGION="us-west-2" export CDK_REPO_GITHUB_PAT_TOKEN= -export CDK_REPO_AWS_SECRET_NAME="cdk_blueprints_github_secret" +export CDK_REPO_AWS_SECRET_NAME="cdk_blueprints_gitops_github_secret" aws secretsmanager create-secret --region $AWS_REGION \ --name $CDK_REPO_AWS_SECRET_NAME \ --description "GitHub Personal Access Token for CodePipeline to access GitHub account" \ From 1f3f4bbc5d5038b285ea61ec9d2c2a77e4381a4a Mon Sep 17 00:00:00 2001 From: "Elamaran (Ela) Shanmugam" <51791117+elamaran11@users.noreply.github.com> Date: Tue, 10 Sep 2024 15:55:30 -0400 Subject: [PATCH 32/43] Update multi-cluster-pipeline.ts --- lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 96766d7a..1c99a890 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -20,7 +20,7 @@ const region = process.env.CDK_DEFAULT_REGION!; const minSize = parseInt(process.env.NODEGROUP_MIN ?? "1"); const maxSize = parseInt(process.env.NODEGROUP_MAX ?? "3"); const desiredSize = parseInt(process.env.NODEGROUP_DESIRED ?? "1"); -const gitHubSecret = process.env.GITHUB_SECRET ?? "cdk_blueprints_gitops_github_secret"; +const gitHubSecret = process.env.GITHUB_SECRET ?? "cdk_blueprints_github_secret"; const props : MultiClusterOptions = { account, @@ -53,7 +53,7 @@ export default class MultiClusterPipelineConstruct { const gitProps = { owner :'aws-samples', - secretName : props.gitHubSecret ?? 'cdk_blueprints_gitops_github_secret', + secretName : props.gitHubSecret ?? 'cdk_blueprints_github_secret', repoName : 'cdk-eks-blueprints-patterns', revision : 'main' // use this to target a certain branch for deployment }; From 29021118a4c034ceb366eaf090d67ccd7dc91a1d Mon Sep 17 00:00:00 2001 From: "Elamaran (Ela) Shanmugam" <51791117+elamaran11@users.noreply.github.com> Date: Tue, 10 Sep 2024 16:05:06 -0400 Subject: [PATCH 33/43] Update multi-cluster-pipeline.ts --- lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 1c99a890..30d52516 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -52,7 +52,7 @@ export default class MultiClusterPipelineConstruct { const account : string = props.account; const gitProps = { - owner :'aws-samples', + owner :'ajpaws', secretName : props.gitHubSecret ?? 'cdk_blueprints_github_secret', repoName : 'cdk-eks-blueprints-patterns', revision : 'main' // use this to target a certain branch for deployment From 55d345bcdc352867296e9a865ed23df53c2e7059 Mon Sep 17 00:00:00 2001 From: "Elamaran (Ela) Shanmugam" <51791117+elamaran11@users.noreply.github.com> Date: Tue, 10 Sep 2024 16:27:57 -0400 Subject: [PATCH 34/43] Update multi-cluster-pipeline.ts --- lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 30d52516..fa671cc4 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -162,7 +162,8 @@ export default class MultiClusterPipelineConstruct { .repository({ targetRevision : gitProps.revision, credentialsSecretName: gitProps.secretName, - repoUrl: gitProps.repoName + repoUrl: gitProps.repoName, + trigger: blueprints.GitHubTrigger.POLL } ) .wave({ id: `mgmt-cluster-stage`, stages: mgmtStage }) From d0d66152e22d5ee9eb65cacb78999fc55b7a688c Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 11 Sep 2024 09:40:11 +0530 Subject: [PATCH 35/43] removing secret store secret --- docs/patterns/crossplane-argocd-gitops.md | 2 +- .../management-cluster-builder.ts | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/docs/patterns/crossplane-argocd-gitops.md b/docs/patterns/crossplane-argocd-gitops.md index fe58fe62..b9b83451 100644 --- a/docs/patterns/crossplane-argocd-gitops.md +++ b/docs/patterns/crossplane-argocd-gitops.md @@ -54,7 +54,7 @@ set its name as a value to the GITHUB_SECRET environment variable. Default value export ACCOUNT_ID=$(aws sts get-caller-identity --output text --query Account) export AWS_REGION="us-west-2" export CDK_REPO_GITHUB_PAT_TOKEN= -export CDK_REPO_AWS_SECRET_NAME="cdk_blueprints_gitops_github_secret" +export CDK_REPO_AWS_SECRET_NAME="cdk_blueprints_github_secret" aws secretsmanager create-secret --region $AWS_REGION \ --name $CDK_REPO_AWS_SECRET_NAME \ --description "GitHub Personal Access Token for CodePipeline to access GitHub account" \ diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index f4c5a34b..949d7cbb 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -6,7 +6,7 @@ import { UpboundCrossplaneAddOn } from './custom-addons/upbound-crossplane-addon import { UpboundCrossplaneEKSProviderAddOn } from './custom-addons/upbound-crossplane-eks-provider-addon'; import { CrossplaneK8sProviderAddon } from './custom-addons/crossplane-k8s-provider-addon'; import { CrossplaneHelmProviderAddon } from './custom-addons/crossplane-helm-provider-addon'; -import { TeamSpoc } from './custom-addons/secret-provider-secret'; +// import { TeamSpoc } from './custom-addons/secret-provider-secret'; const gitUrl = 'https://github.com/ajpaws/eks-blueprints-workloads.git'; @@ -38,9 +38,7 @@ export default class ManagementClusterBuilder { bootstrapRepo: { repoUrl: gitUrl, path: `./crossplane-argocd-gitops/envs/dev`, - targetRevision: 'main', - credentialsSecretName: 'github-token', - credentialsType: 'TOKEN' + targetRevision: 'main' }, bootstrapValues: { clusterA: { @@ -69,8 +67,7 @@ export default class ManagementClusterBuilder { .version(eks.KubernetesVersion.V1_29) .enableNativePatternAddOns() .enableControlPlaneLogging() - .addOns(...addOns) - .teams(new TeamSpoc()); + .addOns(...addOns); } } From b18f5e7ff6eba921857110c5206e0a7baca7116a Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 11 Sep 2024 20:25:43 +0530 Subject: [PATCH 36/43] fixing IRSA issues --- .../custom-addons/crossplane-helm-provider-addon.ts | 3 +-- .../custom-addons/crossplane-k8s-provider-addon.ts | 6 +++--- .../custom-addons/upbound-crossplane-addon.ts | 1 - .../upbound-crossplane-eks-provider-addon.ts | 11 ++++++++--- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts index 07f2d342..e9aecb06 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts @@ -62,7 +62,6 @@ export class CrossplaneHelmProviderAddon implements blueprints.ClusterAddOn { metadata: { name: "helm-provider" }, spec: { package: 'xpkg.upbound.io/crossplane-contrib/provider-helm:'+this.helmProviderVersion, - runtimeConfigRef: { name: "helm-runtime-config" } @@ -80,6 +79,6 @@ export class CrossplaneHelmProviderAddon implements blueprints.ClusterAddOn { }); awsHelmProvider.node.addDependency(runtimeHelmConfig); - return Promise.resolve(runtimeHelmConfig); + return Promise.resolve(awsHelmProvider); } } diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts index 1154fdb3..ec934a03 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts @@ -71,13 +71,13 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { manifest: [roleBinding, runtimeConfig] }); - const awsK8sProvider1 = new eks.KubernetesManifest(clusterInfo.cluster.stack, "awsK8sProvider1", { + const awsK8sProvider = new eks.KubernetesManifest(clusterInfo.cluster.stack, "awsK8sProvider", { cluster: cluster, manifest: [providerK8sResource] }); - awsK8sProvider1.node.addDependency(runtimeK8sConfig); + awsK8sProvider.node.addDependency(runtimeK8sConfig); - return Promise.resolve(runtimeK8sConfig); + return Promise.resolve(awsK8sProvider); } } diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts index b725d460..d31b8d43 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-addon.ts @@ -48,7 +48,6 @@ export class UpboundCrossplaneAddOn extends blueprints.HelmAddOn { const sa = cluster.addServiceAccount(serviceAccountName, { name: serviceAccountName, namespace: this.options.namespace!, - }); sa.node.addDependency(ns); sa.role.attachInlinePolicy(new Policy(cluster.stack, 'eks-connect-policy', { diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts index 7617122f..a63c760a 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts @@ -16,7 +16,7 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO deploy(clusterInfo: blueprints.ClusterInfo): void | Promise { const cluster = clusterInfo.cluster; - // Create the CrossPlane AWS Provider IRSA. + // Create the CrossPlane EKS Provider IRSA. const serviceAccountName = "provider-aws-eks"; const upboundNamespace = "upbound-system"; const sa = cluster.addServiceAccount(serviceAccountName, { @@ -39,7 +39,11 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO } ] })})); - + + clusterInfo.addAddOnContext(UpboundCrossplaneEKSProviderAddOn.name, { + arn: sa.role.roleArn + }); + const runtimeConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "runtimeConfig", { cluster: cluster, manifest: [ @@ -84,7 +88,8 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO ], }); + runtimeConfig.node.addDependency(sa); awsEksProvider.node.addDependency(runtimeConfig); - return Promise.resolve(runtimeConfig); + return Promise.resolve(awsEksProvider); } } From e7964642f3a61a306a128d701a2276d8b8636db6 Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 11 Sep 2024 21:47:08 +0530 Subject: [PATCH 37/43] testing IRSA Issues --- .../custom-addons/crossplane-helm-provider-addon.ts | 2 +- .../custom-addons/crossplane-k8s-provider-addon.ts | 2 +- .../custom-addons/upbound-crossplane-eks-provider-addon.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts index e9aecb06..98f084d8 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-helm-provider-addon.ts @@ -79,6 +79,6 @@ export class CrossplaneHelmProviderAddon implements blueprints.ClusterAddOn { }); awsHelmProvider.node.addDependency(runtimeHelmConfig); - return Promise.resolve(awsHelmProvider); + return Promise.resolve(runtimeHelmConfig); } } diff --git a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts index ec934a03..f5bfb831 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/crossplane-k8s-provider-addon.ts @@ -78,6 +78,6 @@ export class CrossplaneK8sProviderAddon implements blueprints.ClusterAddOn { awsK8sProvider.node.addDependency(runtimeK8sConfig); - return Promise.resolve(awsK8sProvider); + return Promise.resolve(runtimeK8sConfig); } } diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts index a63c760a..6dbbc7e3 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts @@ -90,6 +90,6 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO runtimeConfig.node.addDependency(sa); awsEksProvider.node.addDependency(runtimeConfig); - return Promise.resolve(awsEksProvider); + return Promise.resolve(runtimeConfig); } } From c8784376248249dc164dd75ccf900dadfce32b88 Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 11 Sep 2024 22:26:55 +0530 Subject: [PATCH 38/43] testing IRSA roles --- .../upbound-crossplane-eks-provider-addon.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts index 6dbbc7e3..9be14836 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts @@ -40,9 +40,9 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO ] })})); - clusterInfo.addAddOnContext(UpboundCrossplaneEKSProviderAddOn.name, { - arn: sa.role.roleArn - }); + // clusterInfo.addAddOnContext(UpboundCrossplaneEKSProviderAddOn.name, { + // arn: sa.role.roleArn + // }); const runtimeConfig = new eks.KubernetesManifest(clusterInfo.cluster.stack, "runtimeConfig", { cluster: cluster, @@ -88,7 +88,7 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO ], }); - runtimeConfig.node.addDependency(sa); + // runtimeConfig.node.addDependency(sa); awsEksProvider.node.addDependency(runtimeConfig); return Promise.resolve(runtimeConfig); } From ee3b16f5db3f8b2891f834984f99744da9cc4b69 Mon Sep 17 00:00:00 2001 From: jalawala Date: Thu, 12 Sep 2024 07:38:13 +0530 Subject: [PATCH 39/43] testing with new mgmt cluster --- .../custom-addons/upbound-crossplane-eks-provider-addon.ts | 2 +- lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts index 9be14836..12f4947e 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts @@ -88,7 +88,7 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO ], }); - // runtimeConfig.node.addDependency(sa); + runtimeConfig.node.addDependency(sa); awsEksProvider.node.addDependency(runtimeConfig); return Promise.resolve(runtimeConfig); } diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index fa671cc4..49a463e0 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -99,7 +99,7 @@ export default class MultiClusterPipelineConstruct { const mgmtCluster = new ManagementClusterBuilder(account, region) - .create(scope, 'mgmt-cluster', mngProps) + .create(scope, 'eks-mgmt-cluster', mngProps) .account(account) .region(region) .resourceProvider(blueprints.GlobalResources.Vpc, vpcProvider); From 1c6d95b92d3073a658b5f4b2fccb93ad5f77589a Mon Sep 17 00:00:00 2001 From: jalawala Date: Thu, 12 Sep 2024 09:37:06 +0530 Subject: [PATCH 40/43] re-creating mgmt cluster --- .../custom-addons/upbound-crossplane-eks-provider-addon.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts index 12f4947e..86d35c9a 100644 --- a/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts +++ b/lib/crossplane-argocd-gitops/custom-addons/upbound-crossplane-eks-provider-addon.ts @@ -88,8 +88,8 @@ export class UpboundCrossplaneEKSProviderAddOn implements blueprints.ClusterAddO ], }); - runtimeConfig.node.addDependency(sa); + // runtimeConfig.node.addDependency(sa); awsEksProvider.node.addDependency(runtimeConfig); return Promise.resolve(runtimeConfig); } -} +} \ No newline at end of file From 146d656ecf6b49684991cd9fa0e193a41c88f668 Mon Sep 17 00:00:00 2001 From: jalawala Date: Mon, 16 Sep 2024 11:55:51 +0530 Subject: [PATCH 41/43] fix number conversion issue --- lib/crossplane-argocd-gitops/management-cluster-builder.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/crossplane-argocd-gitops/management-cluster-builder.ts b/lib/crossplane-argocd-gitops/management-cluster-builder.ts index 949d7cbb..10c95a9c 100644 --- a/lib/crossplane-argocd-gitops/management-cluster-builder.ts +++ b/lib/crossplane-argocd-gitops/management-cluster-builder.ts @@ -50,11 +50,11 @@ export default class ManagementClusterBuilder { common: { providerConfigAWSName: 'common-provider-config-aws', eksConnectorRoleName: 'eks-workload-connector-role', - accountId: process.env.CDK_DEFAULT_ACCOUNT, - region: process.env.CDK_DEFAULT_REGION, + accountId: `${process.env.CDK_DEFAULT_ACCOUNT}`, + region: `${process.env.CDK_DEFAULT_REGION}`, crossplaneNamespace: 'upbound-system' } - }, + }, }), ]; From 6185b1a46506190a0ebdc87d38bbd98453f550fe Mon Sep 17 00:00:00 2001 From: jalawala Date: Tue, 17 Sep 2024 09:53:52 +0530 Subject: [PATCH 42/43] Clean up and Update README --- docs/patterns/crossplane-argocd-gitops.md | 211 ++++++++---------- .../custom-addons/secret-provider-secret.ts | 18 -- .../multi-cluster-pipeline.ts | 2 +- 3 files changed, 94 insertions(+), 137 deletions(-) delete mode 100644 lib/crossplane-argocd-gitops/custom-addons/secret-provider-secret.ts diff --git a/docs/patterns/crossplane-argocd-gitops.md b/docs/patterns/crossplane-argocd-gitops.md index b9b83451..64edf07f 100644 --- a/docs/patterns/crossplane-argocd-gitops.md +++ b/docs/patterns/crossplane-argocd-gitops.md @@ -15,7 +15,7 @@ This helps platform teams to simplify the process of deploying add-ons and Apps This blueprint will include the following: * AWS CodePipeline which deploys the Management and Workload Clusters -* A new Well-Architected EKS cluster `mgmt-cluster` and two workload EKS Clusters `workload-amd-1-29-blueprint` and `workload-arm-1-29-blueprint` in the region and account you specify. +* A new Well-Architected EKS cluster `eks-mgmt-cluster` and two workload EKS Clusters `workload-amd-1-29-blueprint` and `workload-arm-1-29-blueprint` in the region and account you specify. * [Amazon VPC CNI add-on (VpcCni)](https://docs.aws.amazon.com/eks/latest/userguide/managing-vpc-cni.html) into your cluster to support native VPC networking for Amazon EKS. * The Management Cluster is deployed with the following add-ons. * Upbound Universal Crossplane Provider @@ -61,29 +61,6 @@ aws secretsmanager create-secret --region $AWS_REGION \ --secret-string $CDK_REPO_GITHUB_PAT_TOKEN ``` -The Secret will look like this in the AWS Console. - -![AWS Secret for CodePipeline](./images/aws_secret_codepipeline.png) - - -### GitHub Access Token for the `GitOps` repo - -In the [GitOps](https://github.com/aws-samples/eks-blueprints-workloads) repository, there are some ArgoCD Application configuration files, which in turn points to Crossplane Manifest files. These Crossplane Manifest files will be applied by ArgoCD in the Management Cluster to deploy EKS add-ons, Kubernetes Manifests and Helm charts into the workload clusters. To configure access to this repo for ArgoCD Repo Server, you need to create a GitHub token to access the `GitOps` repo. First create a plain-text Amazon secret `github-token` AWS Secret Manager, to hold a fine-grained GitHub access token for `GitOps` repo. - -```shell -export GIT_OPS_GITHUB_PAT_TOKEN= -export GIT_OPS_AWS_SECRET_NAME="github-token" -aws secretsmanager create-secret --region $AWS_REGION \ - --name $GIT_OPS_AWS_SECRET_NAME \ - --description "GitHub Personal Access Token for ArgoCD to access Grossplane Manifests" \ - --secret-string $GIT_OPS_GITHUB_PAT_TOKEN -``` - -#### SecretProviderClass object in Management Cluster - -We will create SecretProviderClass object in `team-argocd` Namespace as part of the Management cluster creation. This will be used by the ArgoCD Controller to reconcile the ArgoCD Application Manifest file in the GitOps repository. - - ## Deploy 1. Clone the repository and install dependency packages. This repository contains CDK v2 code written in TypeScript. @@ -103,6 +80,7 @@ cdk bootstrap aws://$ACCOUNT_ID/$AWS_REGION 4. Run the following command from the root of this repository to deploy the pipeline stack: ``` +make clean make build make list make pattern crossplane-argocd-gitops deploy @@ -116,29 +94,48 @@ make pattern crossplane-argocd-gitops deploy ![codepipeline2](./images/codepipeline2.png) -### Create Kube context to access the `mgmt-cluster` +### Access the Management EKS cluster + +In this section, let us create a kube-context for the Management cluster and ensure that the ArgoCD and Crossplane add-ons are deployed successfully. + +1. Run the below command to get the AWS command from CloudFormation Stack `eks-mgmt-cluster-stage-eks-mgmt-cluster-stage-blueprint` outputs -Go to the CloudFormation Stack `mgmt-cluster-stage-mgmt-cluster-stage-blueprint` outputs and search for a key starting with `mgmtclusterstageblueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `mgmt-cluster` The example command looks like below. ```shell -aws eks update-kubeconfig --name mgmt-cluster --region us-west-2 --role-arn arn:aws:iam::ACCOUNT_ID:role/mgmt-cluster-stage-mgmt-c-managementclusterAccessRo-XYSC5PKL8WnA +export CFNOutputKey=$(aws cloudformation describe-stacks \ + --stack-name eks-mgmt-cluster-stage-eks-mgmt-cluster-stage-blueprint \ + --query 'Stacks[].Outputs[].OutputKey' | jq -r '.[]|select(. | startswith("mgmtclusterstageblueprintConfigCommand"))') +echo $CFNOutputKey + +export mgmtclusterstageblueprintConfigCommand=$(aws cloudformation describe-stacks \ + --stack-name eks-mgmt-cluster-stage-eks-mgmt-cluster-stage-blueprint \ + --query 'Stacks[].Outputs[?OutputKey==`'$CFNOutputKey'`].OutputValue' \ + --output text) +echo $mgmtclusterstageblueprintConfigCommand +``` + +2. Run below command to create the kube-context for the Management cluster. + +```shell +$mgmtclusterstageblueprintConfigCommand ``` The output will look like below. ```shell -Updated context arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/mgmt-cluster in /Users//.kube/config +Updated context arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/eks-eks-mgmt-cluster in /Users//.kube/config ``` -Set below environment variable to the above context +3. Copy the context in the output above and set an environment variable ```shell -export MANAGEMENT_CLUSTER_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/mgmt-cluster" +export MANAGEMENT_CLUSTER_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/eks-eks-mgmt-cluster" echo "export MANAGEMENT_CLUSTER_CONTEXT=${MANAGEMENT_CLUSTER_CONTEXT}" >> ~/.bash_profile ``` -Run below command to validate the access to the `mgmt-cluster` + +4. Run below command to validate the access to the cluster ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get node @@ -147,13 +144,12 @@ kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get node The output will like below. ```shell -NAME STATUS ROLES AGE VERSION -ip-10-0-116-4.ec2.internal Ready 6d8h v1.28.8-eks-ae9a62a -ip-10-0-175-104.ec2.internal Ready 6d8h v1.28.8-eks-ae9a62a +NAME STATUS ROLES AGE VERSION +ip-10-0-137-3.ec2.internal Ready 18h v1.29.6-eks-1552ad0 +ip-10-0-169-194.ec2.internal Ready 18h v1.29.6-eks-1552ad0 ``` - -Run below command to get list of Crossplane Providers deployed into the `mgmt-cluster` +5. Run below command to get the list of Crossplane Providers deployed in the cluster ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providers.pkg.crossplane.io @@ -163,14 +159,12 @@ The output will like below. ```shell NAME INSTALLED HEALTHY PACKAGE AGE -helm-provider True True xpkg.upbound.io/crossplane-contrib/provider-helm:v0.18.1 47h -kubernetes-provider True True xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0 25h -provider-aws-eks True True xpkg.upbound.io/upbound/provider-aws-eks:v1.1.0 8d -upbound-provider-family-aws True True xpkg.upbound.io/upbound/provider-family-aws:v1.4.0 8d +helm-provider True True xpkg.upbound.io/crossplane-contrib/provider-helm:v0.19.0 18h +kubernetes-provider True True xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0 18h +provider-aws-eks True True xpkg.upbound.io/upbound/provider-aws-eks:v1.1.0 18h +upbound-provider-family-aws True True xpkg.upbound.io/upbound/provider-family-aws:v1.13.0 ``` - - -Run below command to get the Crossplane Providers pods to the `mgmt-cluster` +6. Run below command to get the Crossplane Providers pods in the `upbound-system` Namespace. ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get pod -n upbound-system @@ -187,10 +181,9 @@ kubernetes-provider-a3cbbe355fa7-55846cfbfb-6tpcl 1/1 Running 0 provider-aws-eks-23042d28ed58-66d9db8476-jr6mb 1/1 Running 0 6d8h upbound-provider-family-aws-bac5d48bd353-64845bdcbc-4vpn6 1/1 Running 0 6d8h 8d ``` +7. Run below command to get the ArgoCD pods deployed in the `argocd` Namespace. -Run below command to get the ArgoCD pods deployed into the `mgmt-cluster` - ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get pod -n argocd ``` @@ -208,110 +201,90 @@ blueprints-addon-argocd-repo-server-fd57dc686-zkbsm 1/1 Runnin blueprints-addon-argocd-server-84c8b597c9-98c95 1/1 Running 0 24h ``` +### Access to the Workload clusters using IAM role `eks-workload-connector-role` -### Create kubecontext to access the `workload-amd-1-29-blueprint` +Note that we create and add an IAM role eks-workload-connector-role with system:masters RBAC access to both of the workload clusters i.e. workload-amd-1-29-blueprint and workload-arm-1-29-blueprint as part of the Stack creation. -Go to the CloudFormation Stack `amd-1-29-workload-amd-1-29-blueprint` outputs and search for a key starting with `amd129blueprintConfigCommand` and copy it's value which an AWS command to create a the kubecontext for the `workload-amd-1-29-blueprint` +The Upbound AWS EKS Provider Pod will use its IRSA role to assume the `eks-workload-connector-role` to gain access to the workload clusters. The `sts:AssumeRole` IAM permission is already added to the IRSA role during the Management cluster creation. -The example command looks like below. +We will create two Crossplane objects of type `ClusterAuth` to create kube-context to access the Workload clusters using the IAM role `eks-workload-connector-role` -```shell -aws eks update-kubeconfig --name workload-amd-1-29-blueprint --region us-west-2 --role-arn arn:aws:iam::ACCOUNT_ID:role/eks-workload-connector-role -``` +We will also create two Crossplane objects of type `Addon` to deploy Amazon EKS add-ons into the Workload clusters. To deploy add-ons, the AWS EKS Provider Pod needs `eks:*` IAM permissions, which are already added to `eks-workload-connector-role` during cluster creation. -The output will look like below. +Note this IAM permissions can be made very granular to provide least privileged access to workload clusters. + + +### Access the Workload EKS cluster `workload-amd-1-29-blueprint` + +In this section, let us create a kube-context and verify access to the Workload cluster `workload-amd-1-29-blueprint` + +>Note that we have added an IAM role eks-workload-connector-role with system:masters RBAC access to both of the workload clusters i.e. workload-amd-1-29-blueprint and workload-arm-1-29-blueprint. + +1. Run the command to create the kube-context for the cluster. ```shell -Added new context arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/workload-amd-1-29-blueprint to /Users/jalawala/.kube/config +aws eks update-kubeconfig --name workload-amd-1-29-blueprint --region ${AWS_REGION} --role-arn "arn:aws:iam::${ACCOUNT_ID}:role/eks-workload-connector-role" ``` -Set below environment variable to the above context +2. Copy the context in the output above and set an environment variable. ```shell export WORKLOAD_CLUSTER1_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/workload-amd-1-29-blueprint" echo "export WORKLOAD_CLUSTER1_CONTEXT=${WORKLOAD_CLUSTER1_CONTEXT}" >> ~/.bash_profile ``` -Run below commands to validate the access to the `workload-amd-1-29-blueprint` +3. Run below command to validate the access to the cluster. ```shell kubectl --context $WORKLOAD_CLUSTER1_CONTEXT get node ``` -The output will look like below. - -```shell -NAME STATUS ROLES AGE VERSION -ip-10-0-96-158.ec2.internal Ready 6d9h v1.29.3-eks-ae9a62a -``` - -### Create Kube context to access the `workload-arm-1-29-blueprint` -Go to the CloudFormation Stack `arm-1-29-workload-arm-1-29-blueprint` outputs and search for a key starting with `arm129blueprintConfigCommand` and copy it's value which an aws command to create a the kubecontext for the `workload-arm-1-29-blueprint` +### Access the Workload EKS cluster `workload-arm-1-29-blueprint` -The example command looks like below. +In this section, let us create a kube-context and verify access to the Workload cluster `workload-arm-1-29-blueprint` -```shell -aws eks update-kubeconfig --name workload-arm-1-29-blueprint --region us-west-2 --role-arn arn:aws:iam::$ACCOUNT_ID:role/eks-workload-connector-role -``` +>Note that we have added an IAM role eks-workload-connector-role with system:masters RBAC access to both of the workload clusters i.e. workload-amd-1-29-blueprint and workload-arm-1-29-blueprint. -The output will look like below. +1. Run the command to create the kube-context for the cluster. ```shell -Added new context arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/workload-arm-1-29-blueprint to /Users/jalawala/.kube/config +aws eks update-kubeconfig --name workload-arm-1-29-blueprint --region ${AWS_REGION} --role-arn "arn:aws:iam::${ACCOUNT_ID}:role/eks-workload-connector-role" ``` - -Set below environment variable to the above context +2. Copy the context in the output above and set an environment variable. ```shell export WORKLOAD_CLUSTER2_CONTEXT="arn:aws:eks:${AWS_REGION}:${ACCOUNT_ID}:cluster/workload-arm-1-29-blueprint" -echo "export WORKLOAD_CLUSTER2_CONTEXT=${WORKLOAD_CLUSTER2_CONTEXT}" >> ~/.bash_profile +echo "export WORKLOAD_CLUSTER2_CONTEXT=${WORKLOAD_CLUSTER1_CONTEXT}" >> ~/.bash_profile ``` -Run below commands to validate the access to the `workload-arm-1-29-blueprint` +3. Run below command to validate the access to the cluster. ```shell -kubectl --context $WORKLOAD_CLUSTER2_CONTEXT get node -``` -The output will look like below. - -```shell -NAME STATUS ROLES AGE VERSION -ip-10-0-96-158.ec2.internal Ready 6d9h v1.29.3-eks-ae9a62a +kubectl --context $WORKLOAD_CLUSTER1_CONTEXT get node ``` -### Access to Workload clusters using IAM role `eks-workload-connector-role` - -Note that we create and add an IAM role `eks-workload-connector-role` with `system:masters` RBAC access to both of the workload clusters i.e. `workload-amd-1-29-blueprint` and `workload-arm-1-29-blueprint` as part of the Stack creation. - -The Upbound AWS EKS Provider Pod will use its IRSA IAM role `mgmt-cluster-stage-mgmt-c-mgmtclusterstageblueprint-I8cnZsnO37rA` to assume the `eks-workload-connector-role` IAM role to gain access to the workload clusters. The `sts:AssumeRole` IAM permission is already added to the IRSA role during the Management cluster creation. - -Since the IRSA role will use `eks-workload-connector-role` to create a kubecontext object and also to deploy EKS add-ons into the workload clusters, the `eks-workload-connector-role `role needs eks:* IAM permissions. - -Note this IAM permissions can be made very granular to provide least privileged access to workload clusters. - - ## Test -### Install the ArgoCD ALI +### Install the ArgoCD CLI -In the ArgoCD CLI as per the [docs](https://argo-cd.readthedocs.io/en/stable/cli_installation/) +1. Install the ArgoCD CLI as per the [docs](https://argo-cd.readthedocs.io/en/stable/cli_installation/) -Get the ArgoCD Admin password using below command. +2. Get the ArgoCD Admin password using below command. ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo ``` -Open a new Terminal and Run a local proxy server for the ArgoCD Server. +3. Open a **New Terminal** and Run a local proxy server for the ArgoCD Server. ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT port-forward svc/blueprints-addon-argocd-server -n argocd 8080:443 ``` -In the current Terminal run the ArgoCD login command. +4. In the current Terminal run the ArgoCD login command. ```shell argocd login localhost:8080 --username admin --password ``` -Add EKS Cluster to ArgoCD. +5. Add Management EKS cluster to ArgoCD. ```shell argocd cluster add $MANAGEMENT_CLUSTER_CONTEXT @@ -319,14 +292,14 @@ argocd cluster add $MANAGEMENT_CLUSTER_CONTEXT The output will look like below. ```shell -WARNING: This will create a service account `argocd-manager` on the cluster referenced by context `arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/mgmt-cluster` with full cluster level privileges. Do you want to continue [y/N]? y +WARNING: This will create a service account `argocd-manager` on the cluster referenced by context `arn:aws:eks:us-west-2:ACCOUNT_ID:cluster/eks-mgmt-cluster` with full cluster level privileges. Do you want to continue [y/N]? y INFO[0004] ServiceAccount "argocd-manager" already exists in namespace "kube-system" INFO[0004] ClusterRole "argocd-manager-role" updated INFO[0005] ClusterRoleBinding "argocd-manager-role-binding" updated Cluster 'https://0F745A41ECA76297CBF070C032932033.sk1.us-west-2.eks.amazonaws.com' added ``` -Run the below command to get the list of ArgoCD Applications. +6. Run the below command to get the list of ArgoCD Applications. ```shell argocd app list @@ -336,15 +309,14 @@ The output will look like below. ```shell NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET -argocd/bootstrap-apps https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./common/testingClusters main -argocd/cluster1 https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./clusters/cluster1 main -argocd/cluster2 https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./clusters/cluster2 main +argocd/bootstrap-apps https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./crossplane-argocd-gitops/envs/dev main +argocd/team-spock https://kubernetes.default.svc argocd default Synced Healthy Auto-Prune https://github.com/aws-samples/eks-blueprints-workloads ./teams/team-spock/dev main ``` ### Validate EKS add-ons deployment in Workload Clusters -Run the below command to get the list of Crossplane AWS Provider Config Objects deployed in the Management Cluster. +1. Run the below command to get the list of `ProviderConfig` Crossplane CRD objects deployed in the Management cluster ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.aws.upbound.io @@ -357,7 +329,7 @@ NAME AGE common-provider-config-aws 23h ``` -Run the below command to get the list of EKS add-on Objects deployed in the Management Cluster. +2. Run the below command to get the list of `Addon` Objects deployed in the Management cluster. ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get add-ons.eks.aws.upbound.io @@ -371,17 +343,15 @@ addon-eks-pod-identity-agent-amd-1-29 True True workload-amd-1-29-bluep addon-eks-pod-identity-agent-arm-1-29 True True workload-arm-1-29-blueprint:eks-pod-identity-agent 4h15m ``` -Go to the Workload EKS Clusters and Ensure that EKS add-on is deployed successfully. +3. Go to the Workload EKS Clusters and Ensure that EKS add-on is deployed successfully. ![workload-amd-1-29-blueprint EKS add-on](./images/amd-add-on.png) - ![workload-arm-1-29-blueprint EKS add-on](./images/arm-add-on.png) +### Validate Kubernetes Manifests deployment in Workload clusters -### Validate Kubernetes Manifests deployment in Workload Clusters - -Run the below command to get the list of Crossplane Kubernetes Provider Objects deployed in the Management Cluster. +1. Run the below command to get the list of Crossplane Kubernetes `ProviderConfig` objects deployed in the Management cluster. ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.kubernetes.crossplane.io @@ -395,7 +365,7 @@ provider-config-k8s-workload-amd-1-29-blueprint 4h31m provider-config-k8s-workload-arm-1-29-blueprint 4h40m ``` -Run the below command to get the list of Namespaces in the Workload Cluster `workload-amd-1-29-blueprint` +2. Run the below command to get the list of Namespaces in the Workload cluster `workload-amd-1-29-blueprint` ```shell kubectl --context $WORKLOAD_CLUSTER1_CONTEXT get ns @@ -413,8 +383,7 @@ kube-system Active 8d test-namespace-workload-amd-1-29-blueprint Active 4h9m ``` - -Run the below command to get the list of Namespaces in the Workload Cluster `workload-arm-1-29-blueprint` +3. Run the below command to get the list of Namespaces in the Workload cluster `workload-arm-1-29-blueprint` ```shell kubectl --context $WORKLOAD_CLUSTER2_CONTEXT get ns @@ -432,9 +401,9 @@ kube-system Active 8d test-namespace-workload-arm-1-29-blueprint Active 4h9m ``` -### Validate Helm Chart deployment in Workload Clusters +### Validate Helm Chart deployment in Workload clusters -Run the below command to get the list of Crossplane Helm Provider Objects deployed in the Management Cluster. +1. Run the below command to get the list of Crossplane Helm Provider Objects deployed in the Management Cluster. ```shell kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get providerconfigs.helm.crossplane.io @@ -448,7 +417,7 @@ provider-config-helm-workload-amd-1-29-blueprint 4h37m provider-config-helm-workload-arm-1-29-blueprint 4h46m ``` -Run the below command to get the list of helm charts in the Workload Cluster `workload-amd-1-29-blueprint` +2. Run the below command to get the list of helm charts in the Workload Cluster `workload-amd-1-29-blueprint` ```shell helm --kube-context $WORKLOAD_CLUSTER1_CONTEXT list -A @@ -462,8 +431,7 @@ blueprints-addon-external-secrets external-secrets 1 test-helm-workload-amd-1-29-blueprint default 1 2024-05-15 06:39:17.325950143 +0000 UTC deployed nginx-17.0.1 1.26.0 ``` - -Run the below command to get the list of Helm Charts in the Workload Cluster `workload-arm-1-29-blueprint` +3. Run the below command to get the list of Helm Charts in the Workload cluster `workload-arm-1-29-blueprint` ```shell helm --kube-context $WORKLOAD_CLUSTER2_CONTEXT list -A @@ -478,3 +446,10 @@ test-helm-workload-arm-1-29-blueprint default 1 ``` +## Cleanup + +To clean up your EKS Blueprints, run the following commands: + +```sh +make pattern crossplane-argocd-gitops destroy +``` \ No newline at end of file diff --git a/lib/crossplane-argocd-gitops/custom-addons/secret-provider-secret.ts b/lib/crossplane-argocd-gitops/custom-addons/secret-provider-secret.ts deleted file mode 100644 index 6e30984f..00000000 --- a/lib/crossplane-argocd-gitops/custom-addons/secret-provider-secret.ts +++ /dev/null @@ -1,18 +0,0 @@ - -import { ApplicationTeam } from '@aws-quickstart/eks-blueprints'; -import 'source-map-support/register'; - -import * as blueprints from '@aws-quickstart/eks-blueprints'; - -export class TeamSpoc extends ApplicationTeam { - constructor() { - super({ - name: "argocd", - teamSecrets: [ - { - secretProvider: new blueprints.LookupSecretsManagerSecretByName('github-token', 'github-token') - } - ] - }); - } -} diff --git a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts index 49a463e0..fbc1f897 100644 --- a/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts +++ b/lib/crossplane-argocd-gitops/multi-cluster-pipeline.ts @@ -52,7 +52,7 @@ export default class MultiClusterPipelineConstruct { const account : string = props.account; const gitProps = { - owner :'ajpaws', + owner :'aws-samples', secretName : props.gitHubSecret ?? 'cdk_blueprints_github_secret', repoName : 'cdk-eks-blueprints-patterns', revision : 'main' // use this to target a certain branch for deployment From ffaac7743b3fdf35af60175e8fc3a3ad7e03bbdf Mon Sep 17 00:00:00 2001 From: jalawala Date: Wed, 18 Sep 2024 00:58:21 +0530 Subject: [PATCH 43/43] update README --- docs/patterns/crossplane-argocd-gitops.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/docs/patterns/crossplane-argocd-gitops.md b/docs/patterns/crossplane-argocd-gitops.md index 64edf07f..488aeaad 100644 --- a/docs/patterns/crossplane-argocd-gitops.md +++ b/docs/patterns/crossplane-argocd-gitops.md @@ -332,7 +332,7 @@ common-provider-config-aws 23h 2. Run the below command to get the list of `Addon` Objects deployed in the Management cluster. ```shell -kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get add-ons.eks.aws.upbound.io +kubectl --context $MANAGEMENT_CLUSTER_CONTEXT get addons.eks.aws.upbound.io ``` The output will look like below. @@ -452,4 +452,15 @@ To clean up your EKS Blueprints, run the following commands: ```sh make pattern crossplane-argocd-gitops destroy -``` \ No newline at end of file +``` +The above command deletes the AWS CodePipeline `crossplane-argocd-gitops`. However to complete the Cleanup, delete the following CloudFormation Stacks manually using AWS Console or AWS CLI using below commands. + +```sh +aws cloudformation delete-stack --stack-name workload-amd-1-29-workload-amd-1-29-blueprint +aws cloudformation delete-stack --stack-name workload-arm-1-29-workload-arm-1-29-blueprint +aws cloudformation delete-stack --stack-name mgmt-cluster-stage-mgmt-cluster-stage-blueprint +``` + + + +