From a09c4d028262773b471aecbe931b01ce599a5e90 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jul 2023 06:32:00 +0000 Subject: [PATCH 01/22] Bump urllib3 from 2.0.2 to 2.0.3 in /helm Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.0.2...2.0.3) --- updated-dependencies: - dependency-name: urllib3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- helm/src/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm/src/requirements.txt b/helm/src/requirements.txt index b3db5eb73..67a7e1cd3 100644 --- a/helm/src/requirements.txt +++ b/helm/src/requirements.txt @@ -4,4 +4,4 @@ idna==3.4 PyYAML==6.0 requests==2.31.0 semantic-version==2.10.0 -urllib3==2.0.2 +urllib3==2.0.3 From e7a0909f245f8cf67b3d580e2e601a31bb1d433a Mon Sep 17 00:00:00 2001 From: Nirmal Mehta Date: Mon, 14 Aug 2023 16:02:12 -0400 Subject: [PATCH 02/22] Update index.md fixing the kubecost multicluster alert box --- website/docs/observability/kubecost/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/docs/observability/kubecost/index.md b/website/docs/observability/kubecost/index.md index b35ff27f6..d0485515d 100644 --- a/website/docs/observability/kubecost/index.md +++ b/website/docs/observability/kubecost/index.md @@ -28,7 +28,7 @@ This is the exact challenge that Kubecost is dedicated to tackling. Founded in 2 In this chapter, we'll take a look at how to use Kubecost to measure the cost allocation of various components at namespace level, deployment level and pod level. We'll also see the resource efficiency to check whether the deployments are over provisioned or under provisioned, health of the system, etc. -:::info +:::tip After completing this module checkout how to use Kubecost and [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) to extend cost visibility beyond a single EKS cluster with [Multi-Cluster Cost Monitoring](https://aws.amazon.com/blogs/containers/multi-cluster-cost-monitoring-using-kubecost-with-amazon-eks-and-amazon-managed-service-for-prometheus/). -::: \ No newline at end of file +::: From 50e875331c804f0b385662abd7e2d41e835b6d37 Mon Sep 17 00:00:00 2001 From: Niall Thomson Date: Tue, 15 Aug 2023 13:58:08 -0600 Subject: [PATCH 03/22] Removed banner regarding workshop structure change --- website/docusaurus.config.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 0ccdf0b0b..7cde82a4e 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -81,14 +81,6 @@ const config = { themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ ({ - announcementBar: { - id: 'rearch-migration', - content: - 'đźš© EKS Workshop underwent major changes 21st July. If you have an existing lab environment please see the migration instructions. đźš©', - backgroundColor: '#20232A', - textColor: '#fff', - isCloseable: false, - }, colorMode: { disableSwitch: true, }, From aca3cfcf23bfc2775c1c87aa033d2a52a142a5fb Mon Sep 17 00:00:00 2001 From: Niall Thomson Date: Wed, 16 Aug 2023 20:10:14 +0000 Subject: [PATCH 04/22] Ensure kubecost LB is external, test its accessible --- .../kubecost/.workshop/terraform/addon.tf | 7 +------ .../kubecost/.workshop/terraform/values.yaml | 5 +++++ .../docs/observability/kubecost/costallocation.md | 14 +++++++------- .../docs/observability/kubecost/introduction.md | 4 ++-- .../kubecost/tests/hook-kubecost-deployment.sh | 4 +++- 5 files changed, 18 insertions(+), 16 deletions(-) create mode 100644 manifests/modules/observability/kubecost/.workshop/terraform/values.yaml diff --git a/manifests/modules/observability/kubecost/.workshop/terraform/addon.tf b/manifests/modules/observability/kubecost/.workshop/terraform/addon.tf index 158e28940..712fbf7f5 100644 --- a/manifests/modules/observability/kubecost/.workshop/terraform/addon.tf +++ b/manifests/modules/observability/kubecost/.workshop/terraform/addon.tf @@ -41,11 +41,6 @@ module "kubecost" { helm_config = { version = "1.102.0" - values = [data.http.kubecost_values.body] - - set = [{ - name = "service.type" - value = "LoadBalancer" - }] + values = [data.http.kubecost_values.body, templatefile("${path.module}/values.yaml", {})] } } diff --git a/manifests/modules/observability/kubecost/.workshop/terraform/values.yaml b/manifests/modules/observability/kubecost/.workshop/terraform/values.yaml new file mode 100644 index 000000000..a083a82da --- /dev/null +++ b/manifests/modules/observability/kubecost/.workshop/terraform/values.yaml @@ -0,0 +1,5 @@ +service: + type: LoadBalancer + annotations: + service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing + service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: instance \ No newline at end of file diff --git a/website/docs/observability/kubecost/costallocation.md b/website/docs/observability/kubecost/costallocation.md index 4d6a7ed6b..7f72ffb7e 100644 --- a/website/docs/observability/kubecost/costallocation.md +++ b/website/docs/observability/kubecost/costallocation.md @@ -7,7 +7,7 @@ Now, we'll take a look at Cost Allocation. Click on Cost Allocation. You should see the following Dashboard: - + @@ -22,13 +22,13 @@ The application we installed in the Introduction section created several of thes To do this click on the setting button next to Aggregate by at the top right. - + Then under Filters select label from the drop-down menu, enter the value `app.kubernetes.io/created-by: eks-workshop`, and click the plus symbol. - + @@ -36,13 +36,13 @@ This filters down the namespaces to only show our workloads that have the label Now click on Aggregate by and choose Deployment. This will aggregate the costs by deployment instead of by namespace. See below. - + We see that there are different deployments associated with our application. We can dig deeper. Let's look at a single namespace. Set Aggregate by back to Namespace, remove the filter, and click on one of the namespaces in the table. We've chosen the orders namespace. - + @@ -54,7 +54,7 @@ We can also look at the different resources running in this namespace and see th Click on one of the entries under Controllers. We've clicked on the orders deployment. - + @@ -62,7 +62,7 @@ This view shows us more detail of the specific "controller", in this case a depl Until now we've looked at a broad overview of cost allocations or a deep dive into single resource. What if we want to group dig into cost allocation by team? Consider the following scenario: each team at a company is responsible for their operating costs within a cluster. For example, we have a team that is responsible for all the databases in our cluster and they want to dig into their operating costs. This can be accomplished by giving each database a custom label associated to that team. In our cluster we've done this by given all the database resources the label `app.kubernetes.io/team: database`. Using this label, we can filter on all resources across the different namespaces that belong to this team. - + diff --git a/website/docs/observability/kubecost/introduction.md b/website/docs/observability/kubecost/introduction.md index 474f1ef55..cfefc2592 100644 --- a/website/docs/observability/kubecost/introduction.md +++ b/website/docs/observability/kubecost/introduction.md @@ -17,11 +17,11 @@ Kubecost has been exposed using a `LoadBalancer` service, and we can find the UR ```bash $ kubectl get service -n kubecost kubecost-cost-analyzer \ -o jsonpath="{.status.loadBalancer.ingress[*].hostname}:9090{'\n'}" -a9e6e1f6b373f44bf8e1c1cb70f6a95b-1567842963.us-west-2.elb.amazonaws.com:9090 +k8s-kubecost-kubecost-e83ecf8fc1-fc26f5c92767520f.elb.us-west-2.amazonaws.com:9090 ``` Open this link in your browser to access Kubecost: - + \ No newline at end of file diff --git a/website/docs/observability/kubecost/tests/hook-kubecost-deployment.sh b/website/docs/observability/kubecost/tests/hook-kubecost-deployment.sh index 47f6e36b7..4bdc36378 100644 --- a/website/docs/observability/kubecost/tests/hook-kubecost-deployment.sh +++ b/website/docs/observability/kubecost/tests/hook-kubecost-deployment.sh @@ -23,11 +23,13 @@ after() { exit 1 fi - if [[ $prometheus_success != "deployment \"kubecost-prometheus-server\" successfully rolled out" ]]; then + if [[ $prometheus_success != "deployment \"kubecost-prometheus-server\" successfully rolled out" ]]; then >&2 echo "Prometheus did not rollout" exit 1 fi + + wait-for-lb $(kubectl get service -n kubecost kubecost-cost-analyzer -o jsonpath="{.status.loadBalancer.ingress[*].hostname}:9090") } "$@" From 2b110b0ce5909d4b95dedbc115d38221162b9b3c Mon Sep 17 00:00:00 2001 From: Niall Thomson Date: Wed, 16 Aug 2023 20:40:42 +0000 Subject: [PATCH 05/22] Fixed GuardDuty scenarios, removed anonymous access scenario and made it testable --- website/docs/security/guardduty/.notest | 0 website/docs/security/guardduty/enabling.md | 2 +- .../security/guardduty/findings/Cleanup.md | 18 +------ .../Policy_AnonymousAccessGranted.png | Bin 97447 -> 0 bytes .../findings/anonymous-user/_category_.json | 3 -- .../discovery_SuccessfulAnonymousAccess.png | Bin 118809 -> 0 bytes .../findings/anonymous-user/finding-3.2.md | 49 ------------------ .../findings/anonymous-user/finding2.md | 31 ----------- .../findings/anonymous-user/finding3.md | 29 ----------- .../impact_SuccessfulAnonymousAccess.png | Bin 50869 -> 0 bytes .../findings/anonymous-user/index.md | 10 ---- .../security/guardduty/findings/finding1.md | 20 +++++-- .../security/guardduty/findings/finding4.md | 2 +- .../security/guardduty/findings/finding5.md | 7 +-- .../security/guardduty/findings/finding6.md | 4 +- .../security/guardduty/findings/finding7.md | 4 +- website/docs/security/guardduty/index.md | 12 ++++- 17 files changed, 40 insertions(+), 151 deletions(-) delete mode 100644 website/docs/security/guardduty/.notest delete mode 100644 website/docs/security/guardduty/findings/anonymous-user/Policy_AnonymousAccessGranted.png delete mode 100644 website/docs/security/guardduty/findings/anonymous-user/_category_.json delete mode 100644 website/docs/security/guardduty/findings/anonymous-user/discovery_SuccessfulAnonymousAccess.png delete mode 100644 website/docs/security/guardduty/findings/anonymous-user/finding-3.2.md delete mode 100644 website/docs/security/guardduty/findings/anonymous-user/finding2.md delete mode 100644 website/docs/security/guardduty/findings/anonymous-user/finding3.md delete mode 100644 website/docs/security/guardduty/findings/anonymous-user/impact_SuccessfulAnonymousAccess.png delete mode 100644 website/docs/security/guardduty/findings/anonymous-user/index.md diff --git a/website/docs/security/guardduty/.notest b/website/docs/security/guardduty/.notest deleted file mode 100644 index e69de29bb..000000000 diff --git a/website/docs/security/guardduty/enabling.md b/website/docs/security/guardduty/enabling.md index 62f0b061f..e72812cd9 100644 --- a/website/docs/security/guardduty/enabling.md +++ b/website/docs/security/guardduty/enabling.md @@ -8,7 +8,7 @@ In this lab, we'll enable GuardDuty and Kubernetes protection. **Enabling using CLI:** -```bash +```bash test=false $ aws guardduty create-detector --enable --data-sources Kubernetes={AuditLogs={Enable=true}} { "DetectorId": "b6b992d6d2f48e64bc59180bfexample" diff --git a/website/docs/security/guardduty/findings/Cleanup.md b/website/docs/security/guardduty/findings/Cleanup.md index 1b856cb3e..61c0dbede 100644 --- a/website/docs/security/guardduty/findings/Cleanup.md +++ b/website/docs/security/guardduty/findings/Cleanup.md @@ -3,23 +3,9 @@ title: "Cleanup" sidebar_position: 133 --- -To clean up all created resources in Amazon GuardDuty for EKS section please run the following commands. +To disable GuardDuty run the following command: -```bash -$ kubectl delete rolebinding pod-access -n default -$ kubectl delete role pod-create -n default -$ kubectl delete clusterrolebinding anonymous-view -$ kubectl delete pod nginx -n default -$ kubectl delete rolebinding pod-access psp-access -n default -$ kubectl delete role pod-create psp-use -n default -$ kubectl delete rolebinding sa-default-admin --namespace=default -$ kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml -$ kubectl delete -f ~/environment/eks-workshop/modules/security/Guardduty/privileged/mount/privileged-pod-example.yaml -``` - -Finally disable GuardDuty: - -```bash +```bash test=false $ DetectorIds=`aws guardduty list-detectors --output text --query DetectorIds` $ aws guardduty delete-detector --detector-id $DetectorIds ``` diff --git a/website/docs/security/guardduty/findings/anonymous-user/Policy_AnonymousAccessGranted.png b/website/docs/security/guardduty/findings/anonymous-user/Policy_AnonymousAccessGranted.png deleted file mode 100644 index ca1860bb717290e54ba05916ac01227a33115154..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97447 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 BnMnWu diff --git a/website/docs/security/guardduty/findings/anonymous-user/_category_.json b/website/docs/security/guardduty/findings/anonymous-user/_category_.json deleted file mode 100644 index 0d4475828..000000000 --- a/website/docs/security/guardduty/findings/anonymous-user/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsed": false -} diff --git a/website/docs/security/guardduty/findings/anonymous-user/discovery_SuccessfulAnonymousAccess.png b/website/docs/security/guardduty/findings/anonymous-user/discovery_SuccessfulAnonymousAccess.png deleted file mode 100644 index 88aa2a9e812b9a89045595aeeabbfb26aa1d243c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118809 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%0D0Bq1 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 pzR_TKH@_|4-i%odm5jAbyr*Rb|#k9bq}c-efb^ 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 z zaGmx0E|JT&{Ry*Txlq_7#C5@E57{pg38$@~=7bX^xu%n~@-oyX^P{&}Zk>`?y&T&S zuw&wnR%dQPJqhNMI7&NyDSj?bmzbgzn5H!{cECQRG9Xdea3{?{vmuhoGo zJFoRfrdcBj1`qd?yYQXnF(}uCbF0l}g#Gxgq8?MrO=8JVp&1S>?kz`v>!xfG0SN-z zoDGZ#la54=1y?oxi(?iZ@dqB3bqB7sYsE7fkNATHZBgrtfoq>W=&gua7IHT`)-JMGc zHZGIm)5bOwj8slo++L0{lc8bcgGSSPTY-*sG{l#OK8>5Ey{R3RL6);RNF= zp$is+Q{^&4AxS?{`Vt%idzWIfg@#%M=KIzG^q^6H!fr30hvc#FNcDMpW0sCr7eFAZ zIT)V!g?YkQwm0s!tYMwiqDj=pmh~!RS7OJqAwP7vKU#vHqe%eAXa|aAeZ6KUM=T3f zYD9EeW45@+L^CgGCluJ-ao$$I)7(HtODxL9Sl=fXb@cy6WX$?!e5K%r;(PGGnB^sp z)Dh9u>0T^Ql_dbS6?zK=pPOz=D#s6lQbyF}D6HE0tDQHdM7T}DeM9i7)^gVnsjXvr zxdn^##bLXC==)KG+w&tCymh-OmoGBd%6B_95F6JBhSaFxvaC)3mBbpwQYY_Ye@XYE z&6FB^$6mWsm$8;aI#;hwR}w;?=cCTBH~P9KhGvBV?1mu_u64G1;K%kxD3M{f*Sn`Xy!_{{2Y+B5}e%Yo1QLwakrK}TpNE6lJ4 z=k{W)O7u(B!+vbe!rL=cG0Q%c^k4P=bEn7}EK8zKt z;6=7{?65d|ygTlX)s$+?E$%hPUQoy~d;-VvgjSf0f1Zi80_~^w`DL~+Pn>Pwzfo^e zD}Av_uWH_D#uTz^wDaPkUtK5R9gSXsf5!KUEdPxG`Wx8CtC#lM%H3sHsqcvw`xXq<*Ju`9@&y3IB4s2^p3@Sz3b5k(vT((n2TbN9yHJUwUW=96^XX z^YYL`=3r{P4}akY{u=@FcZA7X1hTVucd8H2t-cvA<0VPMW_>LC8(cDw-^kmK#v`y{yUwlC%NhKcD%?g!gGiZP-$^Q6%j_Ke2 zkSb^j;Ka~69!fLbJ(vEk*w61@B53$nG#G#bwd!|RVa+@(5j1^je^8tR|EqzxGmE~q z*C>E4Ba(!LK$V(&Ma=4Wj_p|#2Na+A3{3E z7c2Uorpg-XH>ez<4#Rz@VQrqu)xiLh8eHfC%Wi@`M z%OoU!er`Zlu`V&rDR_h0E^ z2w~q@>3CZ92Y&wFn(zwx?iAge3)od;P~RLXErISwfu?_b)}Hdt!kIK^6mvVoG`}-# z?hKArCOCnzBgBvx<^381E;6cz<(F~OUt=cyR`3aB3+1oktRIuK4vPqlLSv7gCiH)e z^gouVFVJwlHt6oZz()P`P?p(!D4pSx-OR(^nfG_S`o9nOYb<|mvi}=_U%Bf4xzPXX zTnLT}xD>&l96s@rbNQXE3s`l%g6P9Y)vD6)oTmZOIpjp9JDjf`6z2Jxj{`fl_?MEU zPM>jq!MHTKpx=Rm-^FZ#=e}0-TIpBJ4)F1!6zUBXKH~+sq8N%41nhCi`E^ODN z6Qj$O{(BI;$l$H%W69VJ|Kp(Vq3-t^WNK5&zO$$O;~>(~2_JJn5b!enwB+s_ef9gE zOf0)i2H?MY0MQZx(2C6&z1m;=7=3%76_!f^!z($tw@Z}d4l3+W>36P|fRT+RDi5?W z5|tYL-!oMV{fjDtn0c@7Umk!41C<08Zjnwy*iZsmncL;2N$~;}s%}A^NU81`sB3M* zSr2f`-yH|Y)B~+7?W$EF{qTgYb)Xf)W4_+g?5um8GUA(M=Fl%NfSJikDNY=g1GJJu zEkOI<9N`GEKPuHDCgb3LG$KfZ0L>X2?42x#Ia~y^Qa9(I!21CBqDU`Cio^&TnDdt2 znyVQ4zb7HQf@pzOI_9d)|Eek+HUz^N+qdo(w<95TKO{A3)L;tEmjdu-W9g_DL{dO2 zlJcHPA%9umZs8>pduvupR{9L%uVqT`F`P969t@8cO_mzaihcdoM`zf()$hTMBs=*M zLe?1S>IcPwm2$?M?(Rqs_!a()SevVZ9Fofs&aVd25{^>uPor8dvF94*y{(yZ$y6eYYF!fgpowdufNHt!PT0umw^$pX|c z;}(-tfD%mz$JWWjaX29VHu-h5&|mrfe}fjh^buZes!Er{^2hU%8(Z8-PrX7&CB+76 zff-1o;#DA#{%uKvQznvIE3*nFpajI*Dhe1iD?T0X%#qIK%My6mQ=;W9QChc6+%||| zF{qL>@6MAx^yHzsy;`_^nYw_G>rNafP=UvZ*9NCA?j?y2mx(6;I?x5= z1eLfv7hje&-J2>mh_ua?5G#j8CKEZ`?pDQOAw{D?%OmVP1B#kSG|TX!t!AKDWJ?to z9xi{11tfQGs<rnehz%Yj*h{ z0v~QU^+EA)*PoCwU$MYdv9?axiEF1~1f5>u?*oU9{(iJ}`wwEF6#%*DsJND-AxhA6 zcIvB?m@z^j1(6#soY9`JQHhn7E3$2WtU-u4&;S+A?U|I;Q~^22O-+oQQ?7meT)?U^ zy*Y|jjeEVq7_Sz!XDm=&cm99`;7KC-@v{udJIX9NrQ@G%nO$6^g0iH* zhH{VwW-rCSN$VFlI&$R%VpD1Gkrd$8y_hMLtx;aB;<_?5IjlC`zwZKJEzl$m^w>|} zmY5wjXFy)bZl%Q5ylsE`C%&X;d3ICA2)-`Y@z~~A$PVjcjRm6x@+?o$dq{wzYgPzh zb*qu4vm#KQcMEpuMpDL$i58?zsyBbrWf^G5jeofQ;J^|a15NaUU=E6}%TlsU1c#I5 z#ta`bYEfrMsx}K)eI(OO?iA+8m-v&}9{*ICp2!osBpTH+<44pg73+DAHqsd71me8B zn0yH9M9K{LNJIWmF-nOq>}9--`y-xCrR=kcg+Yie)IP+MM;PrXGwd^N%1SUgWLaRMyVc zGH{!5kubl6vJ&qz&eUZ0Mxz7&OkmUErQ8FZMYX1CZ7mtO-2wk{_l5k$IZIG{#V+V; zyRtrTLD5<)JeIGhzn_Wf&!?r@kCwOQT8A7M>q)qkAk)cK4DwQ!&5cRY_?VW&RFtwU zu%Br0HC-v#G=kPhnjSq@V$+GX-@Elm_#n4YZwjrvk*7hdFp=bwkB{gQhCma{4n)0y zqzf?}4vb8zFMz-mE=N8xNH*K;MQZQfFmr!+ zwfT?*uuLuGLl|UV8#O+M4&}q6oIXccd92fhMY$QEKoh)+-6&6$)(k50g z91Kqq`pIDAnoM&X4d6s(Bh02AY)evCRrD((1G&>Drh0jUV|{ipV!_1blD=6q{qgb@mmM zY{e@1#j*A=ia99~F(qL>&4gu!Am zUE`%ckkUsBxk_(4trOQm8uZ*bzAUx{YBXQ8I+pfqR`%AQQaB$~S&X%+A4ONU)e$r@ z44aAV;EtDUH6|BK1W3eqSaoukj0&166wqn)X=uw$m&6J{uH|=YZ-h$%OdC6r_{~DL z&mCf)@;Zy!##bYpaF>+TRu#Hr=xR=Gs@$oW@8N_6y;TaM zy648L2*$lUEPB>^^L!lZjw;v}M;3zE*5VJ= z%vxv8xzE1uz4x`ReQn3l<248UhF~#7aE`-ZO4V5NN~c`OSa?1(>_JCXBAe5rkC0^oh3a;))3cM>tEbjlut z$^OmACwgD+34doov$F8N17mS2Da_gg1yWm+0FM1ekl2*cb?yU@)jcg&``DILYL|8P zV2{ol+t60Uv;b~VX9PK1$*)OH$Y$XoT;XnjIZEjLxHB=Ub7Wd2AjIT#d7;^8vN$++ zA-&Ejy?e6MwTLgeu4FsenD4qZF@)#ObI84)9rEhSFdq^<-EaZBzfis19vA}k-C}J= zWU`ArCg&Q796Ol@?t~f+=C@ThJTb=<`nP#gy#tPP@#vASz+#h}j*(%*8>XqEyD6Hd zalWRDbf)g7BsvDV?TNe_=G7NhDs{%@Wd{Q~v@R_-7oHm}ZK=Y1oEzWgzIgi^AWx3S z9OuOoj8J2(32*S>yZ77Ap=7itdN~%Tf{ZthM-od>ek-3f7qQ(hfuC zxTUx2(jR=au8=Jeu90-ALsye67=4Cb#$1HM*1L3b%nnVQ=Od<5T4Rf<2d=(^nUAe9 z8e9aNAsD|rA}VdaZ0qRZ-1i!HARWymvYWVGKV=-FEhenAQ4jzHbBE_R-%@{ByS&c`wxh)vo@qZ5FOVCf`cB9@aO7)1HK>SUkHiMZ#kRy<;HYGy$75ZIJ4Nl+UnYy8ZTZ7Q zI1l`KfpLB#0Hb4LwYSCee%)sE_Ix_n1V?tM6niEOWo;*CHyDgJoVn?49ChnzCl8y5||h(bLD~9VbLJl3QDsXOz0Gl_^;dNZ5Tth{9O*byse$Lm={dG@!sOJ^> zl)Q9fXpyZ!iES za6QXsuS1@VBDM~*rj>6tjBXMMFz%_xJOx%JapdfXjPN7(DDlUYbthW*3i946x>SV4|X;t-zGe6NZF?{dmKP?e+ z-p0dJE%!oY?r9%ZW`0hC`<5NzL>Ro2v^l6YeX)TPz6ylxkSxi=jA~yMC8a#a%Q`kj zpk6!G?q8k<$^#-wT_6E6_rKyb9W0nc+VM(Umo*&+yn%e!@N74L7}-zP*EJc8LMlN;21r&J2&7n}E<=)uKpMvBrW=~fvp{+R8$4|0bS`S5 zaAt1Ga(QSyS{c2l;Y;-c|IG zxwEYdt#w8CG#&7d0QD{zTBKbeZydY0&~&F@!!^ZgQMA=V`%0r&n;{c^(OMXCd+{}L zLfi^Ba!T2dXwvdo2@*&qreEfg5%0M4j3n;#Hwx`uF~zUWH8(YykYf3P6UNuVS+v`l zL9k<+Pm%LEr^ULm-KWL7<%vlarf^D7?`gvi2l4|D|H#JuOS@Lld!FlGrWMEK(K{lS zGQ)0*7Y+PekHB;8n=HtwYct!70FL!ugCa|B_qe1x$+r~eA4>G(ER^umFE}6ZF~FH5 zx9i~Hvo7WZ);E1_dtTqkBKOsFrAAD9-7drBAQWT7j9;72>!&M=l|7V@(ys{UQ}@@9 zG+mx=422NiWhg&Ru5mxV&vmp<8o+_smbLuz+3W}FdGq6D-KWlka&xq*F5`Y?Q@0tW zG`f&DeI3Ast1%I*w^bKsy`4{>_zbFTr^H&pf03_O*0?Zo%jB5e`fNcCI|w_Q0&L>e zeH{fxPO2}Y#LT*awR>b+@FZ2^~O2(hL&((b*7R8<>)SuS3SJttGd?MPtVyFbi zo|WjrJUVxj7P_HczsMZMGm`Zt%8He4^Q@_=#_JL8rv9*jz7MvIC*Q&Mv>-D7$^4*V z1)MaFp(qCdeKXxTglvrK#lRJA>WEB zAT2d;k#)E_s6j+S`RpnK!MmITJi@CKs+(6g$mbq!L8<{9?D(S3i&nN*RNN>%uUGpv zb8n?>w^ZrY%EN@gu^_ZbirtMlgxmpM`%`afZGs0zAo{O_^!pY7`rzI&6F5*Q`q&U{HVM}FrvY4cb~-peLSLEi+tp_0Q5N;WF*XXnvg*VoLK0CalbZSW0` zl@m3H<)e+8Mhm)$PngrzvDs{~SEHH!J;9v&^>Rm7YJoeVw?XM-is@YA6H8={6vPX^ zBZ6bnd2OfU(UHX7Rb|@7K8|${@rIKw>(q;NI+>vc;8!R;_Kz)>kZPr#Hvfn$);9}2 z`XHF6Q6cu6NQ_ubs3eu*ZN&?Df`ErI9>l8)l)*Z%7oehaE$)E)S}ii19gAg;np77KvlJxAXTRzW2kX z2r|d%V*ZG4q8E7)FQ=bir;Tg_K@eFUWp$xfv-N(33jX2rq7u%j95BT7dDq{_U{(&0 z?<`q=dx}MP?!H}Sx=y-NriOq2sZOT%6Y7JmT!@V0>Djh>@@jAFeB_uN7uY^Kt>uD7 zxb5oj;qQq&4XG0gdwHN`At&YGL(w%2R?>s>##^1-N#Ui%uBm?K34EMjY zYAh`P0c}UWqNO9S7;5}dK4vC0ZS-XDK_-506fk}_QM41dni7wZ*l_^~fiyQq^U0;GC&~g0Z8bazto~cZi;H)tyC1Zy*9MmZJ0TNJN~Hn@}qB*<`;dG_WD;0dqS^%66&Pw z;RiVla$3KOXz8V8B`z9=%m_3Ise$ipmVH;lUO(62Ie!W!ab4I%`yP4YA2Rq0?HUHdc84m13NHG)Hyh8eMfqi4|E4N)%j!I-Rif>jc-6!ovdRLy zL&x!i;-kKUnnjar4OGEcjR(G?fR@VdV}Zo%@%U@EX^PPVa=l#kyPN%hfR#Y>z(w*C z|7olsY6AMVF9%%!QSf&9R%)%pZnFSu^PanHXTSZX_17jmj!JzbX*4!IC zC$on0hba<=&B6|+edpdo9KTdjUd8-p+)zmb#0{0A1cp?KMg%=|bfNu=HH${X1^Ad( zgKekV@DBwV1q7~NEYsX_YRQIl#3`w+O2Neg>D-8BL8OJvRBf~C?wIz~EdM<QyFK3(hzg-`X|HUpj2aao$Z3luN5xf}2Kt(krkXi8gXq*y)?be`@oZCNf zvaxI`PkGmMo;GGa0f31JLKuaS<5tpZ)!Dbzx) zfH@aL_L^|F8u*A|Up%Y*!etwoY_s*sR@K-v&*bNu*`?jC;Z`pvIj zDqhDyKnlZsL0PhSu*;82un2G618}(>kA97r(M#t~Vs<^r$3?9skN>J(Q3GHS*;BP5 z7hVrB5=3giub0CR`T)Ig>6GVhD@?73SpbYpEwG-_^F$7)90ZZCeXjG^g)Oqv}ZMMIUaUGYMDQ;Z?Kc@URWPMct zz6X(Yj#n54nzQVKCtO7J;YnwT^dlc~xdOJU6k!zlQjqRROZ&O4Ge2NDR}77}`=~|3 z72>(?RQB+Xllxe^S9f0v6-`S4bBe=&M`c&D;z)51Q1X&`MPPA0zu%(*%$r_ALV>|T z4{#qGKN^W$#vs`RV4fEk#;R988=CTpX#ME~shqEu5d6k^pX? z5-$i_BxI5jd0eQ$^?u=@WT51gzC1vTwtybOrV*4jR0H3CviFJ+O0Ebgz4vqfg>l;P zv(T%56mg*-lePv&WSU_(B=8kEsw5c?0PQ1%G8PCxE zP&sZJ)cp`{N%>;ndR_P8B+MHAh{wfjH)V2{EZh5Rw_^GsnDw}}jsLX{oNeF$6tPn%K0qJ*e6AreK;J95~?y9z5&FJe!9k z2kcJRk^mXa!#lvp*ky|{=n}9H4!LZS+>>$KgS57!=(jSFGh{8m%$S6q?9F?{3b2c9 z2$;ABY6y(6=>c02DvOrXN&@OkJMo!+73qRi0C?xzOgRGov5q_bo=SZ1mhD_=^D4Iz z2_Tif2yuP?ty(olkx~1iJ&NlVz=#gn2rTNn1YH|@pQ&XX2&$G#ax&V8@!Bri5vK0e zv!w~i0z+}=I9z@zPaDN>4-ZgR*`zu`_??f>K~*=GV^!%i$R>B(tedV0^I^DebyB*T z*x72P^U*587ysT1}petnNC<8ui`|^yXqQ@r)Myp2 z)X{~_+m9x)w)uv%>k^3eKJAfhvBhiyinT?7)N>XFR^@Fk&#ygni$7l+$(hFD($lyC z0jnZX{6$m9Wp|Uu%)hk&fcEv>C<_xb9UaiPvk3JS)Nkfvd`!440R-t>zSRS%-0VXc zp+tf*04y`5wc?gm@8F*szyf|d2N<)}^~yc;e#5Z^ql0p@KJklqWEUEQvRCwFj{Q%U zX!Qg*-Ihe7-vOsvKL0XdWuo` zEX#>`1-1rXDg0L-$6q(_5vYv|h5UvBb*f(qAy!?j)x|0E$MxrZwSdjg9~iel_QX&W zx4*yb@x2+V+sWJT(MIZ%T-!|+g}81lz(IY;mfKNkgYNus4{`*o-aBM4v}<5a{@5+!jT3{pM6C!><-&_G#Taj7KU-97wvWP z{<)i`(Gy3lz_H2;nn9{eeWURPgI`plH@59re(e76N+|g&W`6sVlTeKjvMuBx zznrW4&(Eh1-!nXvR&Jow;4cJ8{k)}B%C+r7o^`9lRM8iP2-l5M&W9;IlJNf|>jU77 z1>dHm#=T)WOtoMF*qdWlk}=L|@1o=)B4O zJCgw9ly$HGhD9mZh$_6L*gZ`RR?HK;cJ}t$?&lNm>ees(kn~$5B;QaON|(Y*rDek+2#inz+pO+0G@vhw8Nk^eMrkdPEDR;-} z0(l(X@qc{cehyF@`uW3}!(8_AHWuu4`C@VAt3pw&VgNh{#)AzL1Je#)T3(a(j2AiG z+Ztn}m+gk8i5<+g4ZzlW<47u+%r{Y=Y#()#kz|XG=M2Za&+L}3VXmL^f3GuGTJRhw zVBW;rOeLy_K}{fXj~)k)?ym@162~dihsE?ed)Q*uqAbT$+w zSKq&27x?@3lo*!pPeDm?C5k~76IK(u!v68xF00=qa!7t!$vK^#9K$>r;TVny^wnG7 z6*ollJ-&Doqp!sL`vA3YH>3sq{;Z~K6Tl^a*fed#rr=1_`)odzr0GeTRxV=~ul{0m zri^_@!vngy9(c#PxzJy9l0O_1L#mXLwG&b^nDv+}gtsq-F05%O{|zO01%cR#c%^h) z;+SibYYrq)J5{3l?1k50`&^)&4D=F@XXi0O7(52ZY68sNvmQfy4ANPlmUPtM^XvsjgN@Xvlk97{;9tezNg975j{1(pElDsbT zAedqM$#H#KXPU5ks29EQ+?E*#{igIei*&@6TP7cN!q~Jd*goej-(`jbk0`sMKSIdn z5mvw!k)k%)qi4wgDp?CDAM!_!;E(C0L#9U>pgegS2LevZEYgg*qhQC5IK6Cn&n_J7!NWmw;aR77k$>X34n_n2(&D%0{F0ED3b0C(7cbS17 zUv0r^*_)#YOJIpFo_Fs9`p9=4Rg!mdWe+_coOl|d$Wbyy#^;cr?Xupx*Mz3^hc~L; ze%4Vf?7DEC(mt#a6#|$7<i3|Pl*l9bj3qt;WDStQ= z0<_`cRAvAn>wEs|VDV6Fvu!{q1x~`?b-bF;yjU-V>A7=`o$=$^`!u-cNDB+-BA`_K zU)vx6YA{e_1ffGy{_bArAOdiP>W6Q!f@oR~2_uQjpU9H@AtZ5|?ulrlkB9#-Q_$>! z9f0`ElWWavA1`Y}hLWiONkASkaR1vLPoDoxCl3B||DHxKBE+#U zUV^Bp-eU$lBkGv|v^)-viC7bqbZhzmxtSQLG*MkZDGDg`!%G8Jd(uU<`%Nq`F#y`y z<7dYImDwBY2SnW&{*>?E{{3!$1Hr}v4`UXLpI9HSfVMFbOjV6POrk6nRs|U@A>n@YVQdGp8X*Oc3Nq3U_=uF>*k!m@;CkO zkBR;xkx*4gLH$ilmDB;&O*X8&aex*eOD3Q4&6EBQCHFtJ^Iv=Tzkc@rHYN8Dsq=3W z`fvaHAAb73ox*=(MSonz|D*hL3A`X+%1=lsk)rWm$Ls&kD*a<2Rn@3us_ourdi=W; zC5<`p|FRXOXEgH-@-3C(J0j`7-P3<-!2kH-f2{a_toXkk{{N2j{-@>W|Lg|D|J8D| zWc6&O&O2-e(IPtgfmuB->lwQ${cOMS-T%EK`QD6KeSMm{bG{pe$*iBzs_pC$z-^!W z);~RtR~Vl`%Yfl>L#~qJ{(qV#)vG_fL_yJCvf^7mU+l}zUK7%(B>2bZe`&upiyr*K zmPkK%N$ai6^1pqXcQMDleR}Xq?`m~AM5Eec-q~5@+oS4*wupzT>r05vw{e)1! zc{TXzbpB04<5Rj&g#L9`DBiW7>?2|^8D-G*$v|JL`(McXKUarVjjH)a zLTl$`pw8#P75vXm*Ee1miQWIDLn$j9NGTXs`c&24h*$iY5D^etw$({)5!N;Vk1KLf_xVP$$!Pdzu*~GydGR*ka)D#C*>W_t$6LwutGrsS~6u+Fa2>< zY7&wPv^qFd?|KkUMDrp^Vz@1b1jb)D$&0sidmzxCSoG@$$h?k~_|(-`Y9)#3Pj=f91fqsNM>{Oz1YLT{YkI? z@x0dTKh8|2VF;=!+i9LN^NJkbFL`(Wn3{M8<{vV(VRuyjG!Aj!*FoLY^AN&bi9tX# zQ~kBBv<{yG3y?OeOqC}I@&pK~eUopBJ+?O!_mbafdZ(7wsB_(QG z$W2*{6|DF+KPAcaSk4+YTkziRp8c`h87lYX(OR|%!1=BJpwLUPD%|M4D`Y*J6PV^P zGm^Vj0N3o&#-oX04x#d^1=$$`Dm1S57FYfKsyVfAb4Wahuy@jb)zE6;^VL@iQT z^sDs%k<+yZN8?kM2EO986hBQM#cxjSGYA=&bvasq0^z-GqbVW*xeJd5+pl0d-w&26Hb!!y#zCX_11ub@~E=d zB~}`Dt=W5DUK5pD{!equifg6xzcT*(RYe}&==BP0AkX1^bT-prE^KzP!0P@+ZO?(U zkTGGEUDTKDXTJi@+A88U_J*}zep;xLru<2AuOQvkt8zkBW9oo6tjy5;7gIX;*Iue6 zKBi?mSEyiq=z}h+>Do5-bNyu0@Tp^avots!2z_G=(y3HL|yGDE7rM+Ft@F4Ar|o>6qfR zO=OWli^0)qA03dpVpn3@o{ucGI|EZU@+~M#JnR;kio6(8dG7jC4Wz_w$X@r$FxbDb zDA}hsp!ra-S9NT;DxNfL;IEeM$+b>x=%e+#FEJJ<-_t2iCDyrYD4a2)XJ&!aTe)sy zPk31ub0wB) z-JvO#8Fl9WZNKqaqi(kvvNrHiP?BA*BKgNemg`THdDaTYwzkNmG5zpzEg60m|oaP5r{+S53M5qR=QY zQ)MBb{*`Z6Vh+flGwse-m90n!KCHNZK?rN@xzJrj^>TJGrz2&l!lMhk&eV~UEv8a+ zRVc5+xi8$*+=975h5}R8+I)fljQ`oF++xt=GuCZccQz`KMJfL+&?@9k)rr0`iurpY$7?|38%3X1@N;p|^ zjEutvh5D+b5T}nHDravqvVG6LXKdi-9k&YTi(b0#6Fu21TVa?P_=ieQ^jg{XAfO*i zZiZn-9k7vy`w>-xu+4d22>&gh5T(PSmZN-ZfnKhVQ-#6r!w>!_weB~c1-umVkp!c* zpX@8CI6eTkJq-q$6K+RZChF+c`iDXBE<=LCMdoN6bYdcj@^>(5i=jekWQ8yaHwO7Y zZzWfD@@7cCe$K+jW-5=GJIB{yy2%kCmajpx{(@PjGH=1P-EFM&jjv!kPsB-u*US$_ z!RZpToOB9((P!SwxB@Z)DdzDV+3QO~OWR7%rN&^%hHpm%>kaz}eVvI06bdH2%l9+7 z>GUs&M-XjXYfRm9-=__HSmt~7Lw zgkayFhg})RpKLE`o>B@B?63Qs_F{VPZLp#LeN2A8v-1<$$a(Q=ALO zZDaKI{`4()w!#wDcr{k)icq(+cr=3LcAG0nC1c^NjNS6?bnz2szxnOb3Rk6!8>69s z{pZnGQY=CitQ@V;1!s$DmU3(4zWXsi##_@BCjqp76fr0;a`C?7nR>-LNrToZsxHktBu*r{L9~pb&U%WzOC1lKz7X(DIQW z_=63-MZ92(P&)n6<%aw!9`6|qBVzf!R_GT8=-F}}w#CU-11@!m@baEm#q}oakf?8$MzD z9od~K=+gIve6F`c4k}MLzOa@R1(Jo5Nf!SDPU1@a1R_`uK<~$IZ)oDyM@Rwkb3i-Z zjP+9b4O(Dlu9 z4yK4n6==eU@}+Wnow?LLN$0gPKIw^0PE~7TFY`SEjr+XY^)}(U2ye(NQ)f@Ed|Vq+ z%uu!ka4|#JvDVumWIdlo`_0NX%`-1p10um%ul zMa+A~fX*=!P9hr(0eyV)G|()MpQZ(Ho}4yIiB~U(4Xbe|xov`68%vvZL7oR5B$o>~ z)wh6a?gYCiXXeO6kuZSYo+uLPsZ~h3)%{Smx1KEbO0~mP%T-GBIwqbg_lI8TZYP_T zDyQkVivrrHW&P8qZ+OuIjTbm(gDJc*YvD!JjLAfU5cz!r(a!jB3v)k?UzT&Ce4Eh% zgBez8jDZwnuWnPMlXa`?sO{%FFlnsZ$%^;+afte&3a67|zj7<4?DdV^rZkTgS(`S9 zTvzyZ<9V5$WAz%R=#%gqP(!A?ml>eFr@O+6ke|eIzdqkLJK8XuJGysy7F%v^>W~M< z;ShC<^wh0(Sft-bDSE(QJbxr^(HzjDO7t7n+J+KmzU^Kb zxu;-%&e!_c=s()^u_@g9%vX3X0KFI8=w-@($hT8RyjBzV(EjoeZ+Cvq`33@?E9xJn zmo>dS(FP{JN<*mg44S}v@!+MljSiheJjuRdwQfAF(=-n$wF|dB*PlwUVtb4DtHQDF zzG-sM5`A34VAOYPuGeZgl_a5yN>I-JdL*Ra8$NlAd^}TcC$ZZ}GnvjXd#+*y+PX(= zcqSP+QDUD!61!fmp6{~u6xQ1GC?Cpy$H0$h(S8ddKpRZk!#Ps-05{pK^53yytADyFdpA-uxLKr zMX)TB5Jf_%o)`NX-TfCAE@byZLH;BEJT$bsy2`egn7J>_pFWa5%sHm==Zi zvRuP9#UiW}!K#UWJz?}MyFWo8WVv%~9a3^ePj^Zn%|6nfs@a=B$$O-Pz8zwQH9OoJ zZ`M7DkaP1*sbSf5y7kz+-)kC3$*J^+B^H~ILAwwr&&dO0=hpft7T2~5!Ctq}y8Bl0 zQ-HHA{lz!;_|2Z4;GnxYe}HPDd>GN79w(Y)59|usy!FyCyuAfE{QPw@{8C`k$$JL@ zK8`p7boqhd@caGv>oeoKd3KRawrE3EKx_D!y_j*hV2NhY`5QiaxE<0re->2pVxyJ5 zP~sY70JK~icE?t#5TeEE5Kn4$7r`gh2+?cu5z`DySmAD#xdM@V?^8OxGA*bMKkwvi zSmoBY&-6y`TPl>u_+u_nD)+U&>9CF65`O{jbk4ng@Q;KtL!*@vi+d^aY*5fIRuW0- z8S#^wmdFmaJ2=fb_{Ju8+F%$zOb}X4b2ALr{-o{XVtoF4Zx63?v8gtJY46>_VrauN z50Bj1=hxZ``ota{%uW8vY{`RZO@Okg{wWT=hXvQD2UkV%Duj>$bngLfw$lnjA3>T> zbuM3VidqtfacT#Z^W;Mp(%C2mN|2WX372_d8FkPhO@}xID^<`-f;P+@DgUd>d-3Nh zj>&TGp0)`P{*nwM`058K#g|C>WG^I3jwwzR{B#pu!9SQJsH>BDyOqnt<2Ls=Dv0Ao zRHM_hMx`@}n4PmA;o!t|AcFl%uBnztwg0;Th8xy(jcU898*;mM2qB8jE#7Bnk#9dz z{i8YyTv4o1g^u&hvDNnTZ!A0Y@T1n6Jr5;@?tdt}!~rP%(I%bY`7+VyMjj@Ab$6}s zhOTguw*zOZ&rD%0OFBKDevjf4GkGK5Uua?^%Ykq?kPf)$`u)JasMnzEYOE&OjIezY;_u90SQL57MAI- zex2vnS2B@`B2TnbSiGHox4!ZIl?NyY^0-_+yLjk7IER|3m2)A9Oaw3YYAxrV^ShZhEv55dv>?m+lBe&l~TvG>Ls$GNKR?FB(tr69{5u~D1SlxjQAN(dbmC5Jd@7Ci+MDB)~hXr-swSD-GGAo_m`@shy8-sLA%Npx;(!O-o zLiwqgaw>79slEA%ap{59fTLAr$>}eiKcWe?9`7Jzy2g>TqB~cmsAO{mV%4uFQz8C% z%g_a(YR9*3Nd6opNKKDOZ8*%Z<@Cc-12(Jubn>rjuWrB@U}B7oX9xS z!*|CC_B+lFiv{;ln-;9!8kUGy^dxqLbyo63CK6!tx9$$S9UP)y)Xyz$i~MoEc{-d8 zIj4s%OdoPS>pkkDZ`}wiOdKB7qmD!_=C(AAkHPBBnd;s)OvN!3qmY}UnP1gVHZ8M3 z`wQ6*2b1{?7nm8Xp;o$mbtyrk#UrJ>#mtFKxW~n(20SO|BCWEFN|z0``1nEhnePD- zkJb7QRy^Id`C~8y+STTlyuHL*;9n2A#(gxdtG=f2Int@A?^La3pC8oN@Mb51EtvSM zJ2e-#le4;)uD2y7Obs9!UzRNC5XXI9N8uX+FoUL}^OXAW^jFg1d7-pYB7)8viQTpu zthqZ9St$K3yCc7?(PEq`B0?{VZWhwe7T?pPO@$wIWNcLFQhN*D>)@pqnBsSUy?gL< z7el@--X3Q}K={24=aH+{4z}$@ zlF!LIU2<_Ua#-&9T<%Uo^OcK9xj>pAl^_nIF+4{h-(wQ}x(kWm-gY&xFBAN58%Rywmh zc}2~Y(`&zv7332Zx#+1({gwcAL4EJba@w%NaCUd);e@EyM7=3N zfNdg^wN9t1HtITcN=tZiwUT)G1^fADu)3m(%b7v0{s!ep@k7VgszD=hQhLnXnxgEQ zXrF81ot8Jbl6CB1V40|w3FQn?%JcD=M zzIMUKcc#w9ky6U5I?Y>rqr*+_y2X}DxtZmVQ6ui7GZf~Z|JZ3w?Dk`=w!!pf+b*%I zX63G=33j&LvQQOUa!N+9d**^24C%Uc!(5QW8(?=mCJrG8wP>Jr-fmgq?w+lQDLJNJcJr!3x2IK*u4%gy8-JIS})4YY3S=uM3~pS$s< zesv+GBW3h~6Vl@_T^)aAQmPvT%8JLvo6hi3D^RU_x-YMQ7n`FPk8TN5w)P)oT)W~n z8)9Q%F1$HqjvyD6NY?}bCu4L5c6t&BYz5O>ms1L=kcv1omBBVv@)PpfuB^n$pf4Ow z7o(3K1b<5$H#>Y2{pt&&L#n{o(S65S&Um^HmwS%@lu?d5)y^+g3Y#&8 zAs6V&AOB6=o)sMY@QA-imu^0#!Cv3u=t2f6%b}uG`Y!YfvpiJ zxt(agCv6K29?yE{bc1y2SZrZp+iOvpu zDcSS{bSfM~uc?c^m8!LsR+wb`^pq>4`gZMk0A+P575LruB}_d>QSL(OuF7NAy}7qt zXX(zq;KuH}M;xaD-nZcaytMj0bO_W^CW!7? zvxd#bfMe5N8l9nQ=AxdT<&_LOZUhZ@n zPodyerv+=31&eqHhtnez8HcRciV6jY7P(kws}emV(xBn56{lGu@!S}DJxKBML-|M8 zwvu+D1G-x6*iX2!j6TFJ;1UxIzw+1@?YyJ=XP@5*XjKuX+~hf9CXY90GF>HFq1X%E zz35l0Dq;u|PGm{hD0M72noOKYw)lyFZazQw7@Ym297|=FZpLZ|>N4+6wy8QI(-m^ipN-qd%Kd`9xn>BYRr>6ge)w zu&_)CD0_-KY6PiCxsytlvY2znoG^pPyt~B_V>Q322GmI)? zDRW@_AZis9+mu z5*!9}S{37h49_sqg(W0ShFN#sC2?Urd*wj^=VgyMgJ=VgW4(^4BGkMckXo=Wju zEzH(=?mw?e@s8WW2?(C0BYagjX(IQ^Ju-*`gta$)|29LAaP$Q={pcc-(;zz3cG$rd z`t;dG#rMt+-e@!GZI0{j>2ZTMQBtvL`+X!?h|kyj*5_P>QbrK*Wh$G>gUV)?CvP8* zzhjYeT^+dB#~#Fy7-Y3RN(04r#Cy!Duq2`TMQGi1;dxsv&F7^`V#-Fjn)Jr_*;N&C z1*}MutHXS()POWJ*UJR}g$%y6D!5Pr-4b4T`>~<*eS= zdO;M0Jbc0E&r)#to#oDZHveW3;G~kUwuiTLn|z>HXVq=nns@xJhkdQz8{^#syTOB3V4PdC1d z=Ao-5%3DmR%gm^ku^Syx6mtwncJ8()c8p6jbr47MLF+xt#~8p8o-D5^gxwgjupSN8 z{UoH4;jc6i}*#y)~M@{F#vG|Ka=X8GGSA$G9fMwvPi=J>mS~>q=pzz@p=1 z1R1FJDgPVQi(3?gAFoh*Ef-;yWP(WKYYSHX{zOx&>-&w#vflB$RS@rfFgs?%M`D+%OSk9O%Hma z25Niu)5)PbQhyBH5u)}L%7L=?I@?Qo6KQp^ub1sOJ(r&)FJ=kR}wC19c&IA7WsF8!;I&~ab>4ETT zH{5+p!L=Z(=Gv9*A^x#Y4Hi8hqe!pYL0j5q;LxcVFHN#OXlRz&pF#sWAtv1VO1b~h z$E~>TsxL&&iYARw&GNOQX}`~N+sX8a-dUFovW*Uf@Xp2RlI23y8jqp3Nrq=1RPcb2 zA=+UDiA*?-g6Ye!v1QhpxAEzF!{|$2`h>4s%EwJvV?>74q&Ms29_>~32<@Ei;fD^x z^|mM8E?$u^W?|#1-X2}8=VO6$JB5un&oAIz2zUU2B#CvXd8*xKtbVmFL1U-x^_P^c z+Y9>X!yEp#Mqrxw}yYYzyD`yI;|Du%g7UX^v#8Q2;N5jITQ)19WzY?#u`#d4o{+zceveJ!x}R?vkKbZyJXX_ZT7i$*1c(%f1KI`8JM^&-y_;$<9kL-A** zuM5LZ>-^L_yc9rquo#M#-SQ=dAVwnP*u~^|_Q$u>WJ9_oBA(`Tmj_iqtcWIxbUB18 zSW0mZIe7_yZa}AwP~_n3>R$D%z_k046Aj)zPm+^tI@)}}U~71dNz^s*iGdcV3=7GU z;G0OPYojD+bPfYKb<1vaL|A?WZ5aNJDo!9ej?@OeKzz^SxYza9UbUKA#gbySr~ZVUJmv>@2Vj&!%AYjeQH?MGlh&%32f*5v{ z3V`--3Wf5oQ1;^Co!eUt6}Kl_+?nB*wLeL5);%7S1;r?-Ud~*dkW@st*!UzM2Uce5 z$2Wcmxo!P~wl#-*y79A0PvpAaNsWbRi%~x%h4@C$g+GWP@d6}{{`{H($2f?pD>{&% zD*K3S=$5H*#)rUzPH5j2Sz!wA*fdo zt^!K#^`E5J6VI7Ou?mIM$@uL#uXaLo)N>Q12zE~JV3|XhD(?z=jnaKSD6`xeuXYkH zl%$%J2pm@HMAQ=*F9V`u?9ba~3JLM`3b~53E)oZXscQ3yp@xN*&FrYe2X3qsAU~5h z+gm>bhBQi|HO+DDWT;w{dVsPC-OuCpGbXfOg03@Q{)Mo|Tz%-UZWHdoY5+|)yPwMj zD^Cy}lOg=*PCXmnp{wer<5glg<*@l!?hOY4-tUfnv#XVpL1Haer7PGEKTtMLEi>QU za=aPsWc8seJMV}dZ}-Ec9_Z**GbgWA-lj|I?;<2CaIjbkEwubr9~nxRn~TY`lWXWA z*6q+WASms3b<{h=ev#Vpaa2}@ogc?t-PhGP>4;n9ozu-}hu_YyGW3}$>ad^Nz@MU) z*&H?eYAm0Q@J&ILp--_URDDe<3Hn8Hw-~k3=E~8 z&lBE#-EuGAr;gp+eY>fRe3ZX?5-l>&mA-QG*x!yifx6mb4j7~U6Vio=9%QJdgq3Q& zQ5tIjTV5xL6I)#|ci>%?v3*`roO;<}+TnjbcIcg>6!7xpM7quMf-9aWnYc_G%Gy*G z)g`VnZ}d`Zbj{PG&1Gyh$e!yHY@APV<6k&fl0452V};D^p3@L*Ef8lsreiTN#>NSA z%^gBLdxdSOym7g_D+BrA!>XRn()WH(0a>Go^?4w&lY$90UZYpT@EkzCSOlEc)i3LN zLfXBVf<}*BC*gQt5a)L1^vsSBix~BA#cxUM2K5(o7Gw8K?Xt5Vd<@{y6N|gDwa= zxJ+wkS}nJa(`*xqrht^)al9mUDR)25uZAt?{T7ei!vDwKTL#6oZr#EWk^sS-grLD4 zLU4C?3))C~jb=6h2XM-7&=knb6xzgtbkefTS<#J-^;s$jz93{c+yT=rx_Cs4%COtwJ21%3^c%jk@z@ z2|g!NL9ptU+3cC-9(i(kacT(h6_gjHU`p^oDS|t1^MS^SZD!XzQgegfvm=FtQBIzY zovaC$Uf2Apjuo%)W!|;4tnq+v->JtK*qJ`amf|Ui-%5~or=aF20=)I0ACskyaEu@V z=<2oXMz@yuRIzAZ^=|p^5_(kv4>4jOw_lQ$xO-#d5|#X6xUE`CGfs5a_&W@-&as>!j7Gj>PKUPUrMi zQ~~FzaCq-<+Aja3NiUlaMbQ(6&!8)_1vZrX7K~N|)?2Y_*Y1gmZ~ltf@|!tH=Ha~w zVJGTZI=ShEFRsan*RW?%*O=5J#=wOQ|*h(U)`CjC@IGLxuxLOVoe(LUZV4u z$HNa+Y~3liu?MT$IG%%a7asEysl_~O?T6D)p4sq>FWi)y`Yfl z_@&0$|Mh8gYTDpbT%+EnH_Tfr2ggDnX3?zkvkGz~Rq#`bA$%~10sb}P-t@_LL?3kx z9nh3XRaG&a0&{H4(9qSADp?q?9JiIawn3Dy@5**VL3Ujb_<*%t<2bs)kVdydAXQvZ zS>Ukph}8@d(TGkirV9FE?rzr@6ut%cr{po1kuXRaRteUfUFu@9vEnIM(yz{J7% zWm_j^)3jdDE5*|_rNIfH6wU`h4itXJA@G~gXtZTnBru=*vZB&~D0>pRKRJcdGag9V zjn`dk{K1_T{MwENc5El(y(*caEE@oYY2N4D%|4!!7tFGQJ$Q%K^(B#(N2YF$($A z`8tQl?cveV6|&^bKFW!N)JC7%E^NeiTpteK$bFZgl05lvQmZv3H(u=|UDslHEoDAa zpFH1Ue~jdhgdf?lT*?Dswcv`OSC%?}?wlsXgb|d;C$QUCuR3u_$5a)&>{upuzGb&j zI%xDadOV3O8)FGKC!cLsg7C+i$(%3uw;a8_N9rpMAts}{G17TXb10RboiuLEx(i$% zj1>6G7;d&+Eb({GHXBl^mT0OI?$1?30SawUW;eIn33jA~`L408DrK1;0=ZOzR5oBO zBW}J_9W&r`%xDc1CBV=W9D1cVFayL!*_wGprbjs|%DX)P1;e6gG7|u|er`KTw?tDb zD}`?JL5HCcJ~zj&%*RV1XBa+A)ZXdq_ANe3i)S8dFYWd2@2(tFG5UmigiX!?uUZDt zAOoGP1ywC|v(svsx?ab-4ulc#$#8;d-X2~RFf(MQ0ip_t#vDWg*(o|<@e|cOA!G$l3v;|uDz|!^l3+Z>v?@a0dZ)C>q6Au-L=)eY9sRBK zGGQ!6U2V6?2``EchYtqhromX$7;bu8v}?H+zqQqhG*)SG%T$2lxTM*3T0T$M*FY36 zPFCQ+C08MzD$U8p>TNGFjS3DpC!E(MkJr8*8H;7nMCcR-Gp?x3*7R7Q_-4*raBUqZ|qwtRX1kjv-Z{3-{-X=EzLfhp@Nld@21 zX|T*LR?rt`sh`tZ$-%eg^~zo^n;7|=W@UCK8cL9y4=>pC4lUh1T`r(Q93tI=e9?mK z0To_EpNCKnA0oEYoav>g*F@6I8cIg}CblwDZhB(L`F@lnCkq84r8S0HrA(OYlq^hz zt{F+DEA9*RZ095eNxnF|pVItv&!561reDTdC@4ph%uEQ>v%W}Oz_cK5RM@#=h9Z4; zW%)(Ahj=r~WKV`qglkMMN4Uo?aza%~^jR=g@jf-5(qu_vM}a@oG*{%-XG^?ERs(!X zOvo;4f-1Sbf0!AtQ2)t7874+)!$$IKDM#b}Jh z5S7m)+=o0lXEzq&-Aka7Lv0f)%X0s6V^k3unfE&xI$^sB;JPuJjoLf{R+Pc#3j@g)T@ffcUQ$2052KE^ zs_7*(MH*BN^q9GlGctzQ*p_g2A>Xk$>D*|)Q`C>&IKrdhcmeI$1GM!Wo3sMk0pFt z{!>u<`r=D4|D8-=MOUGzm>;wfNcz;2vU{7N5NU@4Ta$@{ zdTR{oF7mVBUw!H&YYchn(Y9&I8zWU18hSdy{ko{J~pfY2Q)8~3}&o9EHAQWRm9 z^g@~k%Z%?uO-3Zd7+=wXbvV^0an7#pjLBoa&`0vPUJX-)Z-0Qc5*!qiu+1nv=hn6U zRwR?_PMuW+5fISu1BJlT3>o*S_v}6UnphsKZ)5h}0|!*RbflU8TgRW3wo6rKPt#BF z^U!{b;FhJ$lA@M6Xb8e>v)*L1W52OKqNXXa!ss1ydIr@9%V{=WW^_vCly8r3nRfzL zb9G-vmzTFr1;mCib2qcQ?XXsdrWdDtLj2M0EgQmQDJmZGrNy`OQZIRGE)K}1no7jD z9Cv9>S9$h0y*Kk3$L(#rdjiKk)2hxFbMRLCW`X$)`A^I3XyiSn=Eh1a?@mH5p;I4% z(<&}H`fzh^>~3A0y{_Z4lH8q-mheml$84V-(*Y8$sD7v>=zV)`Hz?w^!23fMh5DQ=^iMROP zJE!)9^Lk2?cPg{|AC}+e68Yhsy+>ZvixlwMY=(t%7?M!lB=#_l}pLdXk(xBQ*C4hBDPYuDm9itNN zu8S!-^dy-Mu&FRX?9YRCjv-7>75S^_GI}}9LngR_xu>LKMD_S2Oi~XE&RWJvL#4)4 zJ=Sao>Do$Pyj7*pweB0?ZI%8)jf;i@;;^blY@al{;y-M#ZwXtni1xY?gGTlhuP*aE zMtGhfa4HYI3q`aqY2E?()0!KXTBn`LgIZ1Yek?P4OBl$GS0%ZY=W|Z4NlEi&>87E4 z_curB4IaWiwcG3DFI(Iy{8}kF3Tip;=p8b5v*_AvuT{JNlmf(1%yTea*RZ}~8ai&B zslT1qLR8PKhk?YL)=R9<4AmKD28*2tulWM7#c(q*q8}5a{Vlt9sT)WaZn zkEMGoe85U48Op9-s;KLYa58Q;qbbp~(FZ`C=sL29r4JP*)fR0~ij}FNCDRVY&AmDZ z-5ZB>9^`JTv9TV^n3_+pzM0p^IRj2x^(Xg5Nex1HA2ZCH@4gy;?gdSUKR_9ydC=24 zNa>X9)?M=`!wQxTiw{^mgyIk|bMQ7ed{)v+_FQ+^Rpr=r)?+73YQyJ&d|Gm9$3&3q)Z{-)K?@My>P7LkZ7W=}DxvH`W zewxk08j&y=)z|KSnMme%q{ND@3M7Le(RPo3=USYPhCteG`%c-Z2mlnI>l{^V^m{qr zeC($C9^Z0U?+?v5@w(e>LdpQ9lq`viz<79UjFPdI_Z65f5tvL>w8e?EIir`1B%!@S ziXLmHKmzUA3;>kni<>ORoE{9RKxr2D)L9&^9Yo>>Li__h=$9SUzVS&lIc)g^j_h8( z;$d9a@6BsYZGt7df!ev?+YCydKinz9ul3-8`35^yohpo8PX10_nLR^H!EmM}Ne%muO6DBUY2_Do5$|p*~t$s-Um0 z;WMc#gGC|uwYd0pR5QB(r*Pp z3PxrD`H8y;4Xt$Dcg11ePW~jPCA(fez1AOJQ6AOqoiE(^4l4RJZ4i_8E5UBsAz|vZ7w$5igC^BUeDwuSxbtVtN=4O zp?-o?)%${#+i8&hC2m|%&Yuc~%Pi&tvWnA~-txftRtqo9d}zGGy4n39Ne%15$y5}j zJiW;v}x%w6rV))R_EBcsn-=i@7; z79C0Y(+c+Hdwu5&>HZ;&`%?%nHs0bXvEPWkKJFuHivUf5)WTSEQIP4ajkuQt z%9$P_=#C|z(|EF*_}WnGKOK^)n*y;g1R17uIm2uqs8y8U9t3P)Ad zBsdlTGmN#9x;}kUK2v5ZxK(dfaZbxX=sL+A z-DvZ<^O^&o5S82WG{N?44tTEF*<0X2ao=?Htoc3nqiciutf~_XO9mWtV&3u?)ef+& zNxI{ZY+u`I$j{cpPReas&O;<(Qks+5Jc?x(lX4)8Q-RQIR2US8?TTkgw1ofm*hdGx zol!pDEANy*eq$nAhfDg~WJ@4}>bkE0o} zdrCl7pp+p65I>;qg0i^q`F1UyMe**H zj1EMipU{=Z-D< zkl$>+$>U4Ce)sJb^QIw+q1r@|5>@+jG-z>=Psn(2>cy|k=I0@esx4n?<{4L69Pr(2 z6aDAryAwG3Xy~fob8bxQ@#61!v3)#9pKPECs&LK(lfAC1^OPE2>k)Y#JMoSL$%m@V zY2!}2t^n1mFsHOu1Q)v$&u<87fa3A&M?@kcUivHDgzvFnkjs7975v7<>$i4DIX#nx z8h85g%ggzVEup8HH~wQBZeuheTdrPeDa^gCTbt(6$j5Fv674%wP+CvxjR-BV`7h8y zQp1Z&75H{LYeeYB-gNj_Vfu=WE!UKy!tFumC>hyd%g`r&($a3ta6@_c)2wsDJoaFUyhw2zvc< zXnTSQAsC$H&SzG8D2W_Fh?|4tu&s+&M7MWbBD#Sn%3GTQcjUb9SCf8SAh%NubuX|C zhsdXGtAZD!KRTgoMeHRtxn5I=^3BAi2i&|LBK#YLl>41}$mZQS`z$T;-_!< z=N=jSQ6KU1-N|g%`=Q1m9*!$7HSuzf!!r zI+lNNR3_684h;l&?|fREkgf@fvJgzVALLDo1h2`}udMm+iyD zBXBp`V*Z2ck;mJc$c|d1S=F!J_=s)Ro$&v}tBu+EXrnDXQ~sHRIZg&3WRNo3T69Rp zvyh+fj`#zli5!4tte6pSZl?dhchabvb8exo7!L8;29(5N^Oa^wV;#qa)DD}W0V%V` z@{i!bM$YQZMB+_d8!4QSd`9|8{{k@)0}H%UG_(V%%}1hX3wm5Co9<9JUj}D z2MNDaEHe-_;((zus*k5CV!C@lq-^Lm8cpy1IR3SJ~}TX0R}ElEJst$x8tI zZkM8;z_yO+*KUAX%_43{Zw$@oaO?BXt@qs{hbA6FR3_K9cK`;V)Hk{B8Y>q5MsA|u zp5pR6#T6l{r=4)2Ucq97(1{XkkzNIz9J}lc8B2draju-nAAUH0maUK`gulh>)#c$X zyI>}d?Q<2662$kmrtI78C7y9bO$NsaXUW1GwbQN&OB`C0VhR7v@cCQzAEtMg(GPqm zZ-%Fi94M0>LC>bkP$7d?f6=suG10!7<}2)o$8L--36FD&Su-D$S)U^&*3QcpYg~)3 z9Zt{Bu;$9_M4r4W1h|49L3QC7i^AhUybU#q3FCPaY4gF1qIo*6whl+<8Bd!X)dFm$ z(q7YRS58Y9!sazq^4Bjr?$=MS3-Dk`KI5h%mNzb*O6P9pFy@w__p%Ame#8sg@=NMyonZN2Bp2hku5(d6oeclF25=x=U=?HDv8O|d>YO4NIA zk$bs5grD&PINZG4oL3A*As^*s_zx<^lNvE-#SPtk)olU~RWvWjkK%}!E|^!)rge4m z^X?Gbc#Muv0h6YbH)e9C;8?`$>gJSB%69kMb5O1yx^7}Gk=`qC8aP=wGwK$7~gnGBdcpc&rd`ti4_BBxe;K5w5$mS19+j;_NVA{QFyX& z`9)7TCozwndo%h|Yf7y^Wcw1(wc~icU)9p){Slk$?O0zfw14simBXrO zbi=6_KDZA;BdLNR%|GH4@v6Zw&tP=*^YwdW@g!q`wA=frsT}Bl!>MZ^Zcl zn{2$TKG>)qrhQ?AkTKkVnzFsQkGm&2!`hLiiR{pKAHa$_7Qu>2WjL!*nJTHfvo#n# zwb4CpF#41%w|)o-71hNL`+Yst0kiYpfT(-iv#*aS_^%py{k__t54J}N%s9zGu*Js3 zBE;KE4ON&>r!jw2x4|vI?*_M)7+OQZKzWF-r6)fC=68k=|L$1Vu&=jWdv_jmY8w`d z&2G0~uJ6~7m;xA!oSjdt$z`$Q?iv1!iwz)#aoU-0GXP_#P;KA@f)LsU9tq&%FJ|c&d2{5wrEU7dmLmf{JAwh`jD+-_wJh_5#9H{AZ{hik<2%_P^LFkg|Gw1&YSI32?4@)n^^))7^RlnL;fY3`}J-X+S`t__mUXOXWJt@l5G@p@&TJY z>Jm5cue8p64e$wqDNaU2g>KyBFH`t^1abX-Z?|`&+B3~Ue)ec4tQIJeoYhJKM~|lC zF{g9CrWpca;aL1xgkR~{Hg@}jJf6h81m7?^!sQV#I%+UScgdqqJHFim1PmtsSB;1B zP15Qmy0PdQ+7TZlF@n)Z8f6oTXK&gAQK^;H3ea-?t`H_(U7&QRm%nfRnFaV0qqo4l zmrRNSr2ImP8Ddqq+BbG@4M@~8CD4Oj-6s39QMMU3dR#WwUPf}h^K+pj2mxDvcODWd zl0YYuRFqO8p&J%OO=>Bn61^0GFzPm=8AR6#eUH?ZquDlItAE|6u$sV!^?aO&3Y6{_ z%_3^g-*k4wy4mJ0eYW0%*~*d^hjgq%!D~}Bbg8udJHj(YFZtn#*++5ZFms1>44jd8W`~G!us@5gH>AH97ns5-tLI2IpwF@ zKmd{{p^bcWy6k=WSvJ@3_9F|e3*{S*Qd$zEz&yh2`Xju_)JW68d}%o#Dhrk*W-$VO5xQ(&Qq=VL(Da8hfmX_<_QO8@#Y zYfNFxfZFnIfwPtjj&|eLDppX_mbF>!BiXD42@UnMR|St;3Ks=EMmmOv^?gsnxXUrM zo|Ca+#B|yjW!_*tQ&Gwmz|IggTD=!uz93?tSt)E@iO(G59i_D|y+;m^@Pb_ex z&?(c;>^n65OStU#b!tyK(5$I^7H_J&f6!)T$aWvT5ki#R0Qqf@hR@CgB@UU+7F$$q#htq!vE{4LaaJ)Vt7Z3HKTvnDNmtK#8?{nu z{vMP0E>laecP9>Jvqv;--`AL0Q0Ghj{HsluGZr?#ACGVmO2 z20eQq2$?u#J3Q^qy&GW+k2syqZ#s5#AUHjqD43$sYfT^Z=qwji$<=@AfMzgKTLa&H zeLU@r$XtR&5vuxRpO%T|QFZkT6_6LAKSwWxUke0d!l%zSyTl0XSy^bw&L5a*Uj*yP?v9Ej>JsTfjm#PRCc z1NKwz5jv&D%DYv6dRIWnwe6#dwf_2%sP*_jgGVTRfkoK(x$GkPTsM&s1S90&hn7xF+YB0&F$r#l`2>q4|UdavyS!!m2H=e^6p*B<=US zf2P%1d%8!jb5Exo^p>25JOn$U?KPBGZ`GR5OZpPhl!1E)L&y2lrqs(3L9JA)pclE0 z+r3f0h_O+Be1$BEV=Rfu*sD&9`P#XIh3`H1ERCt{L=FQ)O=%`m@MJTD_JZ@N3)Dn@ z`*d$#y#9C_nLG&li-8Cdlu^{3y7-=LqfS^PMC*847v#g*aY2VDnMZ(I0Di{k_K zg69c%^);}A)<#ez>2LPC%`Pr_U&ZSBTuGFX&3!^ua`U`H6cy0Upb9WconTxOQP~Fzl9mDb1uO!+b^l3))S@VLP15!Khr}HpbCy%Y_3G?nL!MmACsB*m6bE~5> zAE#2x+}I)Yf2|ZlM5Fi}jigzM^C!aNVlz#KR_M?4w%RIZ43|OS!?FJ6gWf8n#Z&T* zU%B2z|?qaQXjyz>z&;PifBT;chhk@fKT7ka|@FNvuj-^}mcApuKYw}o ztZHAYfKpf^+KWE}^`Bh&-~L4W6T=sc;-@Yi*6V-q&R?w001UG0b=rUbn*Z$`{>QJ+ zsGq`vp6&Pxmi-Ig@XvqYAp?5Zq!I1SzxYxA->c0gee}yFfi{~%FzH>MrVm}0xDP;er z|7ErPYt8*<&rIk*WgZSL@ZXo?|K$&YQBVAs1W)VJ#{ZW${QG4Tz-kodyNveFy7C{a zH^ioo>z}DEd-T7$sQeOnB7}#DM(|HIhX1)$0I$Hw0-qFa02-k5SDpMHUi1%NjDvry z{d^VvXAS>v8{&Vu=1Z#N6ChY}TTn3nPp|&3IusLFsbvIgfj#+uF<}1V8nh2UFoXG_ z%WFR|8d1X==(qK@&A1?5@JkO zSd(GrYYet)z@z-%`xK1;e%|#2Y|ZPoR+%4UD3+PYO!k{;XvsU1wMLHvd5H3ygW);Z ze~Y1fTYzxBOOJ^(;+KrRQ0eC3W!kV#AuLkA@EXGIZd{N57@U7b^3%sD;hPy!`QY$O3zsf)y5a_Z z!*$_8UL%0nRR0xRv(7U{z2;0xc}OoJgjSeFlSw|RhF+}A$FMR?Cb&m* z1d~z@9Axw05p{*wwZ$3-Ww#y;*bDx)AN)m6aaMjx#CXq zemdZd76GQy5i2w7Ovmg-QQ96(YuQK4a0b3LA-d}Wj5mf}PqWKxs+vu;Sfw@N3Lfdd zw&{@-dMTxOnYysfxItKkAEP@@$WfsV*AI}W7=Pd&T_gM;++w4bG|{3@D&WU*pMwYC z^^n75(9R^_ELQ~Vj9_Es#14NA#Ru}oc>1v8{cjXT#``M%!QKJ$k z5e_)R?!pYu8~Y5{F?tzCd(@QR3jzL+LyE_d##s+Xpl^?!CXn|~8<58(zCgEJQtIJo zRt8YkxRP>d?;7~vw(Gc~2RMM4Pj%6JKE@vQ@9v4p$y3pUuJ8U`m|`$kuJl3Ew_wT} zGmez3vK$F@Ki@Ww+5_t6c}u>nqa_Mo?jAXxiKiR@E&$k>iB>^BX39Unq({=lvN!OWw+Dt}(SK4|TNvcuRnOKojyUizA8EwDKXJf* zkYJh4D!V(PPpCW1FTA`#@wWmSAUHGesb2+-=$;*?_~e0(qt6@$MPOe^IP6g1yX!(Q}0LF+ZFswc<{0w*8VW7Dh+e*Kf46>;8{*lSmby_>Cbh(*g@Pj@O%pI)!)wqU%!vvAspCAoL0H1Aa6 zuYk7}iW@QP9s|?Q<=SQ3oEc&lWW9J>tGA;MjHdBy9r5_N;&)p9%RTkZHNDL`fee+l zBL+?q>I{&y->ZjD=4%9f>6NN1H%=`zs|*mZf2SPI4o;^sv}pL z*Pr{&)f^7zju`Hw#%0#J?vzK^Z1%_JTE>s6lvvYKSF*{Oa$8JUr9SM>NSh2Llfm%5 z>P*tbQ#ZM`tV)KlWJyc4JXXuB!mV|3oeDPXiTEMtan-jpvKm&#o|YnR@F2Km%Xc3o zzW?QuqvZB-TyT52gOm7*^Vgg0#ugEHLwPt%3K=Sri`(~y(hI>dsRbN}aE~j7UXX9i z6>(ES+*|#S;|py7gf%$tV}=O`P(CgfhS@`@ri$qbP5CW5GIx#q9z9BC zn%R>3pSX_YIiqylWSVE_v55ZG|rxy(wI6Bml}fn5gz z+I9&>-NwuWwgOH94mLy_0dBw~px%~TbM$?s^#ILdNi#({EeDr?i;T@;DyPN&SLxrv z6YtH7EOc7f5$iiH$GCFi0jWgx;xfswmd~<)n*Ybrm0iXTP_eE&ZWkOTKRPX8GYv1j z$kzU`JFz_!Aw03d-ZYVNtgTr6{SVrcM1{`lc_twz0-PZg%%FFi?d9PN$A$BNNXv(S zk@It7w%&}_xW}Ms4-4&uKN7-#44Uu-7+v$6Cp|}$A z#)aLyl&nX zP54-$Xgw^-1)>l|5IJW*44U&^S%6mn$6b};HdL0rUpFhWQ|n(E_b}u53_qT4Ps|Hqp05Wzg|m zutbP3I-R0DC^1lK$cx^aG z5}7H6WGd;+Q0Lcp{JK27RDPv z`C>^kLUM2h5)=ZE_?|iFLO$qyN$*-0oBfctV?y##9zusN`s0ni^{via9w=s$UYqx=%kK=oYcH+mAsD>#1jsRO;&ieX`D(tHkcIGJ>k>2<*v z#9Q~Ies=G_YL1fo{Nz?c zfz|~bCON@SgD3X0TR3{g;%AM#X@8b^20ft{11w`GI6nE?k^9AyQv7(>UXVXwc{n!u z(mK9Vk$E1+?Q*Ep28RH+dxoAhXuPC!GS_lw2j+g`OMrBcVRQqiwT`RyUN8nS1IJ!- zG4^}w)!BeT{?~VQN|P`#ly>HsUV-bQG|I<5Jm~3luM9WX%EaqY1)D3NldDP3BZ#NbmdQk7$yrRJn8}g`^azkg2iBF*o`xo4)D!ea!Kj52G2-^{NPpUjSzN+o2%kPzSDr4 zHA&}006*zKB$jj&st-L9K z6U=1e))_ZKZl~=q&6bzbRY&1N-g)416YhsI*N$B)ATek6(z>e?%9 zrG!8HW&whRB;+mH8$YP8*jw4xjk8q300C)r+6>7C4;xM_$M2U0!oV-9)7Q z1e)aXudtjShC)7C&(a-~A*ob|sUBlrqO4l<^}8W(TeIHrY~Y?6cFX;S0x5+TXo8mF zo>aFvt_bELz#9v^17YyiZS_9)PN)W#U{EZLYN3GLs>WQBdH1e+**Qxw?NUfAgC5SM z8dq-$KVy~E!q;?oX`lMFTTtJmRR>ay^}W`o>)vEqTs91!293sU>*--Zl^SPR-ZvM2 zC-ua`=)?X@(zuLhhwuEg!6SEz?daNGPkuoMwg91F_J9{GqP@t=Q#~FT?}N(OB}K3P zAH!9HybLB#8^@0eJwPa&eKcvdald0^i(y(DLI*glwgx!}9631c6Slwv$YEDnFJDUu z;hB)enWDE1+hAS@!msVFt^r~ffl}gMLhGI{f`5}o0L?00@mc0N-MzqWTy1r2%VY>L zvRC)IgJV~cQ#VmJREOPMBUZ{&FUd7;NYg+&sk_`Yluc?~;%qHkHP`r*0_&rtMg|fO zSlZQMYm5ts}E4V2j2xMnL=f3+wp#=f;4bY3=yJ{b$#>wAl zg=$)%8>;QS8LtUbJ@pnYD+#Zu<0ia--Ft9)Hwvx0NPizO6bTor^Jn%Yn5pO`m&*t- z6c6iWa|^Xj#Cyv_+eN|&3&CYv=aH+*Z&BFj#imy4k84gp9nHOK-2o{AHdclTgGrpC z?|gEA4-?G1d1??^MTgB`?$-Bllr-c-d2X`k zlS1+=8u}4CI`WM#5^_^NcnWp z73K@KvTr99E-W=w%e%mo{xPNoOOWJdKaNLzbMm#AP$p}s4-vjRZW|s#yz}%;e|gsH zAbJj}?x+VRXxY!L+>`Pd6#Vg&-Khey`!k-|8Y@}ACX21@*6XYx(t*y5a3i0YFO3&?!0j3^!J$$x?YML znl#}~n4Y)&`XFP|WZ@^d8PTnWhR~V!;eUv7%o-)!$yNZX&unW@=f=!1Mb>SyNV$*W zbD4ZoK+D*d=aXAM?N(3ao|3G`b9x1jm>Ju!A^c>wAq+gGQO}nc%a%!1^(jir9?gAwE9YFve0Cb}#H$h@g*+DQQ1UqyjVd-R zw-uI+0X>b$l0-CTV1*dXb@?||W`5ZQW2{!qz670Z*;cVOk8lK;IE72QoBd(^T-TJ% z^!rH!Yl9NkO#as)u~cN5$5kheyrA>`&m_uRBs7{0)=d#9?#|gVQLP6R!Y}6Qyk1kE zmO&P|=c*4=-&F19WqMjAvRxZgTh^EoR ztB;qR?3VL%{P4@+Snke;22mXVdSSMG6fs(&yD;1J3aR+z9l!S-8gZMJ3tZ(%bRf@6DsFFH9K&d0hRK$T|IIeE%jgFhX*X1p_ zI%zND16R|-mfk1FWr`wR_e4TIFYySnfV9FMLxsuAk;mFDmX6F~gMA!0k7bv-Nd2Epv@z{r0ht#X| zw-4fKoq=`&TYc>tm$ zv9{iakzyc^pawXHEfqag}M@1(sI#SLn5+r5cKZp%G~x(ifc4C*LZBL<@<+c3|cy-C#E)g__3wd_n@3VPEgnb`_$C@SIaw8Xrq9`0YbL zm~v&?O8B4lf}OR3Eyj@waE#Hr{z-k6PR9bKk?xW#tfef)oaXByT9Qx(0#5JsC*%@n zDUQd8E{-qH4yCD;-{aEk7K}r~`MNT1MuczI6Cg;6viT>lrn#w5K?PoV9rz5!oz`#3 z@BFW=s$s_~?XS#4$-ikNMu~C)iG3_|;M8bqMA#$i9DeZI!U?vIVu+g6I?TI7XH-gP z3HHseDw=v!zUC?ouo%${!ywNm;m~Y$j9@e_52f>N1_TV}26ia&N`Xk|k$|B%L*Yc| z&z?le9o3w;wNN5%sg53bO8I0kSS1>7ZEwd=$*ahvmy;Q15(_;FX6OIYm;Qa}1QPkz zPAk2qR}KCom+`2YuGuNK&x20 z?D{{A98a!D%yu#yrXU6i?hx&l&|l3D_*OAdA1aEpa;htnFxagLG!OXNb`iOo<~<9w zHcdwwsa5kVy(r3deMY162>e`UAg~m@!YhrYU&kC zk^5YEtMF)*N-dRpGgtD#xw7hA&y&?0;hf?VF6IWZwozoQgONF3w)EtMy)~QJ&`y=vf;PN|!LT<8Y-c{J0cnUd zwtr-|dJxPx2*y`ZzfmZ^jNlaQdl z{5w9Km~lC~@&hK^-yNrHe(5JL*_EHsXs&wX-^?+Nj-vYP|H{6dtFj_*F>+>4qP#5T zwn}Pw-$UJ@MMp@hlb@-b;5$d;(`mobMqYNNh;i-zI>dLCQi=iEsuzYtI4xh2-RE^5 zKk(&xwk#|A_o{UKtU-A|O3c8g%7`J?>gII1&-X(XjOY6%O{lvQMZ&_bE@R!?+z*d@ zzfUdRpIoQXag{w`(fI^j7ug-B&XNeD_ufD^pme5lUdwt@i(H7__Re@f2KUv@5VJP} zo6QZkD5hT1Q6!3Cmn_rlM?WSEYVW^lpwBp;HkBBblvtEp?KV-?;9c5YK7RsZQKn~0 zkkts&E;ohrkvjll%*5Ss3#t$%n?aco8#}-mHdguk%YaZEV3IJRaa@zIWHp#ne$TNC zY=6U{A?A$>EeB;4xHVJWbCEMO~}2)BPvHJC`rPA&)j1di~jrA!RJY6D|n!BdhD3zIZ1LbXDoRjNeQ#B?75 zofODk8u{UHivfxI`db(W8%e`a>0roA%eS1O4D8SQiIGDNU_wT0xvLEcwXFY#C2ZaK zf`RhkA$2oaPZHMGP;f;UJT&7l)b>U$OQOK(Gc@M2*^ID-iMHGFfb0h1Z}64C|KC!= z;+&RGVeLyT96hOi;Jq$O6S`-f_l^x@cr2FEL!ScVrk=R2>(*d`YrsSm<>C}GyG6TsRO5&JxcBC|4T7T0|#L7A0Z*VEnzJF z6T897={A!?!Cs8d{~WO-ta*uTE7Km09jM*nX*Tf`CY4|_`YN4mqH1?d$h(-Ju*a

josHsijaW)VNALm?Y4L?q#Y0>GWyGwB|>Yig}qvQUIIKkwoAq z8GnJnR%c4B>2{~~A)p^ZJVZGPj)Wip9#Sw);1^uEe1-1{7-y==~DI9#qA(x5=U{@%}y^&b>!SEEZUGHqk7F0cxjvk z+i9UGXp=>vwBKR*T%pCS_NdO%4{vYNwar&V%`LWLcPHuVr;QcKoF>iWR;Tgh4YaRi z3=-HJ%)+rd@*CHCHA(@a1dig=Ta%Xa6&=Wj4$pTbd(5E4WsMzT5*`Y2;;4JjO26IY z!0h90hoWBT+trzyq+b!l(OHa}g$BL7jQZWEQkpG-UJrfUoSoVI#gF$U50^{LPs3b( z$n5*EBzsQROUiO5BxxvPPOY^4RC`2#ndQJuB9tYq)}X^BHi6w~Ee{dA!=O^NGMUz6 z{M(2O^f7Y2*W}OtwEjcHv!zmymJJp$X@`yH*_bLYyeP2kHVY5{mXwWh`5`JdMIm^f z(5vZ*=#}nTc4~p3x%yu5x7^TFu1RJRwQIQ$;r+GH?(N9%>ryV)^-i%9sH;TB1JU5a z!mf_^8D_X(4bHgeD%rVSH&goI#)iOISEkzUsh#cH{qUYiN#mU_sk2O7hm(*~At2zT zkvIU!E5Rhw2A6$kYEfW4i0vx-@pe;p#TNSD4GY&?vewUoDrSmX?_W3>jt-VaGlO9G zZ+T6uwhj{MRG*fbO|(F;SdJ31jVH)lvCAoIB0qpirqYe_G{C}z=jp}(7+f-cCQa?I zSsp!xUlv6^GMVW@sjd)ovF3Sq2oamT<`Rqg?&{uxZXsZ4Eu-y(JW{9Ua-CxQ_-&4u zPsaW{;yO0Ca`bg_o2NtGjs<7>Q{iP*FU3yj>JHQnHk9!saB-Ik7Sp~n)iYd%W?Hp% zRFy8(Emev@+O%qC;twaX!HZB9n@c0ZgDTnR%=**1VQ_LIABW-K7lN_fZ~=GEHUSQY z9^+J%DHo87(F+x)2X#PNpDI%5uvY8Gi^miz94c%3-RGH(@5*FntQ9rg&xk;}UWSt~ z5p@|Ng~l@<`{l=S_a_Q`F^?6etmbh@VkPri*B1%(l=3#`$u#esa|tv6ciy*iwZi-} z&`j4u{w3?^o7xbyW3WlNmF(2=!@-qgaWp#Rm}f=%3RVZ-nro;TLJIN{TfNoXs$~3V ztii_0w3$63%#r%@3wT>c95yQG~CVGUO+?uHRwlq~mZdjLv6 z8r>ez2hYL$>%M-ccTnCbZ^gveN@jy^i`zB{b#o=l%DZY`RlwP-B}|^)EAl1+N3q{B zn_9xR%}4Yz>ysoVIqnTc`ACCYkgNR_hTWhLUmrhh7rnvf5Tx=(fcMrIcVqXm9U}C$ zYfUpbtefODxesA!Sh+_wHZ4kopK#K<&qF=bZ^IJ#e1_(|wSKah_!ko*?_=WcqU+Uc zzFy9m+Ccy0I9_%l5*48Do;BK4hwC3A?gZ1#0*vpv79P1xIFxX@S8kUROMyTXt;^*Ww=l-8@V5&+zKalX36*qkv2FX0^B)TWI;tbraBZcb&sh$6YCwzm9sT^!s}F_4ZvSN*pdFUL2bB?dns5 zLvedIfqa%_+oc#a_OqhP05)uyBgiM^qj1+jRLb;g@wn_xN>pibri=8zPZpxDL(;~a z`cCGfP;8m6(y+IGEzRA_a{6Xv`OS-r)vonz9ZO9;%#r%$ippKyipd3MmSOh-Osa0U z7!AUT3CiroKfVSty|~EGpAC@Matv1X2=oE(3xY@J-QSdBg^X838GXb8fp=~%YcS6J*@_~qAe%>x z^!`#N0vH=M+kTDD3@XKnL1P-s5)YW^TH1Wp3wr~`qhsKSsykuA5xR5;EkOQ60`2ZJ zNY5%RP4Wj~4x;CI7)YK%22&k1fQ|P@LYUNsnjgfgudct2cZzcUH@|9WC-v*j&*8oy zYQH>Y^nNJvGs0ACh$5N!N{J-ISb>EKkJ#KYsGI2Tp`)}LLAx5K(Ns*p53Qg)u*?7LGe#%ScYz4jc$*O5Pv4ld}Z_3epg z3ktCwp`xPV)Oh0=T?G03wG#MM-J|OixA41s`+=!I<25e^t%Qxcou;2{9d;jwQeg^*z^tfJ? zAyHUkMR^WEno9aTU0ijQ$<1?51bqk`XCb z^W~1VpX`{G`jaBDX^&Qg)No~GARvh~?9;|PT;mFs0yq+sem~sl&+#6M7BP%??g;pF!|wL{yoK-SP~BTWsB6>eBUqP= zM~gy+4*?c(PyD_RbGVSQMa&aaz6W}sWTL}N;3F6PffSadQ443K=-qJocF5fJ8Q}#k z9(%jF_*b@P=tM-?xnK+nGiuk!?@>W-!{}4yWYyT=izZE73Oua~o7mCHAo|q+-`>AHq-+Kbv6Ki2 zloDTX)r)f#QsM-2Ohepul^+vIpL*DR#%YyqC+Wg8n_9j7zqb!bLXL~EY13~KWKa>F zV+_tbUjB-wDR02Ri&`ftR;0jKbmL=*#-^pCOoE7)AWDne!N;RKpCH#rn1~3M1K0`T z+4EmF558o%*-!rLjIXe&2T4jmy{~R4aO44tuO0|-H`P;SPpc0IYXIEQv3Bc^6#h~! z0vH%qe&0(Od(X%Nu|gMcxQ9E`xpzF-Si*R*EHlj)JH76H2@|qSJ2)Opeqv%ID1+Bt z5!@f<4loA(^te9_deixCE5c_+Ub3A4boUUn)~@rd=xfK-Y{vD}&dg(E`Az&65cV%9i)Z_zn4!MfY`^q1Zy4HXDZeN3+?S!=y|lx-fH&YU_Pn~1YR;@*>N zPr}P3x&1!J1y-z_F4qRZYc$N9lxwvLV*-{->ObjL2;2%2AKqRr#v6Y+-4ou1-A9Qa zUneqfKT1O#1ZEntYfM+Emv}v+W-MkU1Hu?J%JpnoS?07IYL^vr>txb+qz-1hzAm;+ zFGi6zm7g;vJv?njpGtN0${Kc~kS#V~E$e73)_Y9Et8w0$cZwDP!H+k#_i-T#b(U{m zRV{@keos&;p6iZ#e(0&~ZQ$5CT;W6%vG-Yy-YrG8+;e2BMq}vBp?R+ZtH5ozrl%c} zlrv@?=&2*G$ox)mzRUN83`Jg({=%27~HZ z&s$uT=1nd|FiJ@xBtJS;{Yr|vhq?@8%xg4_~y?paC+$hY_8g@PP09S+H)lBOJ86s{=T|XzQC1v^g zpMmnzx3R(OTC6T$#jbnVl(R-%FXaXtGEeF#z(oHEtJ+oT)>tN3Yp4T3CpNWM^w0-2 zWbua^TAWFS*XmBSwQQgk_bh3Wx40<9oThi|CusjNW1_aboy@~mxYk|z?Xt`a54Xp_ z$r}bxPO++2-6Kxgs#C5`W@K|0ODkcNQL|BkI{3p6;&579{l^jX_^YE8735Sd-EIaJ z*>sfC#M!a>DyP80*)g%;>dP|`r|o>Mi6-a$Sw%j0U1tO1vO9_szV4#l%W|(AuCiMe zxioX)%-cs#v$?iduTis^ij4CgK(9RE0QAztGL!I|Fz0t;W-STKDFd+)ImfK4oEn$& zwI21~TOV1H0p33DMoT%P2I3N#xx9@oKi7{I9JUgcelN5D$Zm_$TvmBc1YoTW8)$Tr z@Ul#rNg%~K8MCD}X)>9Tf*X*8RRPKRsc8Y!ij7ky!2#+en`ZdTG^2kO3tZYk;$)52yYP#`3X> z^1MAg(lxl{Se9*=2^p>TsK85t(I+libSn4gOV+0Ddx)3z<+q@#LqL1aqY2~!p7`o# zU+8ASdo?bS?wtb*Ob(9TC^T-}&CWdKr*fPwNXY zM~}x?hul@$@d|a4&)>4~D&Bjx@X)T(?50zViNwK%=4-(1HV?Hy@V@tOz1$y=k!nf?~ii7FSEiD=V_s5ztqc5b4WL!S59Guz0UUh`UQb{^YWO+UF)S-EaWEjis!!|w zl2xJniD{wID=GqIXHLg4RKQ+IjouCVjfE`p(j~n(>HGzOq07n9M_J{PW!l69Ru(Ud zOq<6WiAUhWrhH>V4^OIhdg`E5*P&eO_cE204sd^30CApbr7uSt1g|mx>m5C)NojBZ zcTT*I5qq1f%PW4}dpn>|GKy#$4)mLrIi=R`s>7`(9Y(R2+w~7cHQb_U>5WRH2cK37 z+;Z(`c*km_oxD>f_R&*}wWij*vTsFwd?AMBsfU&vrKbx|JVL9$E&UOOedmLVkqcLF zGRx{Ri_$XeW(6dDEy!uOBF|q69_T?I;E&Rw42a_E>_Iz$Hjg=~rBu$i&$YlD&D;&H zv;+yG`u;d-wpqAr(o@p4%_p@pX&ew~-p#8igWr~d8S!BZ%2mKuq~0arwrC#(%S|N1`a12?RiBkp$q^2x_1%WfW+3m|B@VLE0kbEbr5!Ll zQ>X}N)G7bfUVxdQhi}4ND##w-_NRk93P0IwCSqK>+@&R^QyT;F14_=}`0fm9NyAn` zu2|ACWin9kyrhG?@YEX4XDrk?>w=Q2L{sh71Nwyfa>0en#sIkn;L$2Pwe9_|59@*du3wWQbEhev zr5&qo2&F2?H|3_9H*E@E0iJjyEp7rOim6<0Cdf)$oVa9Y_-gC|)VG>Xj2ObTSB_IGBUVQde%zzU|^?W23OX}&KE zbJ9Z_tYll9XSW}pylPQ%-DoXrf)o2GF_`8}lPi{$TRdJ!`xGsa!515MNoPCXD_BM5 z@XCru3ZqA1<%CgIY`z}PpY7ybFk%9;#>u@2Jd0#NSu8x)41}E^5yKlnd?Z4-;$w`1 z>@*2;QT4*f=-2bqD9!fM7>{veV@_aHXe0Cp=y7P_)WsBkSb!~us53>?4@d9h2NKwF#qMl!G~6i_mbluu9zDS{`W(*$ z$A=C_SS73b{ax$?%U(~Sj@_`XFUQ^$66)OhRb3FMJ5la}&VZQK-^We96=>7K%cL47 zIsZ|DS{C<47*`(E&yj5*q=xObi1lNsj%8RDVdAe>d2lz1Iy8Y`7lThH>B<}gV^IxY zn@1)={FqXBfz{i=UIwO#FRQX+cSG1s{rFLbQ3JFFSguY1Ad1++sDpJzbr=77Ysh1M zo32&@gapSrhX_I>?=lDuOxl1U&09WgmIYM)9fnvJy^q9Dl5r2Z`T#c9WOP2Ql;>jy zuD4a0;)kIopT`3}J^0$W%KUNe;ms}N2VgvT(Bs7*spqNGHo^}>C$8BG%}j(?B3s}B z`49OSGce6O%4iX`_*klGJNR^oLVMioi9)qNSKw3R?MdCH~=93iL4uKD#4}>GVN(qFk*15GsLFX zm=gX_$2f>`&tNSyN{|zj(v^<$Yj+*vN18;4YUW`Mpo-O=YKG4Agz_`yA*B z3HN-y=TL;QEfV3WJW;&URc&18&Zo-2a>`}T#XOzugvfC}G6-pEvtgTaY{5a-Qy_Y( zF#{g=Fbpd&Xl}z6?<@EQ3lASo`f&F{?r>XYE^U~*$8Z=yy4@Qk7dtS*7jXmk>$yr<%*v{y~YCMi#GofgppDjx4o_eIK zFkxH=6X)iI$Sz{+pyaMRxnHr|RjxskZijFpGQX~$kIk>j^_Y;4*mTjTl&gjn>i0qr zK@v{<1s;@2v_X*ljQMU5NpLjw6C6gWN}#lT)ZKr9IrsH#Hq~($$r+6q9K6?HC0>Ab zCFb#UlmmOi3x-6Nh!=hBF^C<(4Q8>@n=X?d0* zYj@l^jOQMSc{G0)lh{_C+W%aPE(HbZ3kOOhRZ#s}&aZ!DjMdjYkH#$n1@52qo(n$p{{GCzmO;*Y&d*C1uajJ09?RE> zKsE@bK}o>1c8ado{$X!2-L&6|LMCb~aS6>ERg&wGrV}+`0)YAQ!@XR;t#HT#%5YVJ zI`mHOVayY|Ht@Cl&({gaK8CFF1%T-f zC%h3bp>QP&oas{(_t51iBuhJGtecF>{CvZj`($}@!yCGyPR!cRo5b^1CQ-up)Dvw~ ztX|<$ov^FsrO0g}iP0%F%T~JS5<8LsQ)$!}b(84q^^QjfI)_J>W0)J&$zGUTHb@=Z z6k^lv5457b>2zglkcL~I~Ek+;(&JdUU`#hnV@saux)^q>NXc1AP{+} zH_sqRF6fi>OgxI-KV*!_8V*(3O&rxf0~2BRv+b)p33=x6tCnafP)S*c#tp_#uHMV~3DS zsm46ICS0$M?#lCZdn8LuBimE@cRcRYOVnW5PPyw6TatO*8>97NW3B>8QNlgV>P2qH|LH2ijJQPj|uE$IB@BeNAKF-QG@7CXapO0_1kdK<_$bDS4AK{GJMVjAFDW>voOe+k{&;j~A9} z&No~-$w0t;^!?J~>{8dd5y{0F(gOn=18)b^2h_vzBHMCJ-JH;II1gTC+i)Z{vJbhx z?51h^^-Lez|3N>J%||@(Tsm#5WC|lP`TbRKXji=0Pu)WOg z6D8mW?eK>_Ki+Fx6}y7@zV=lDx@+`mY-$c0i>v*G-gNHGY$f~wHZL%rtD>MqP9R3{ zJDnsb_|#?+az);Q-gIW2wf#cb?oO(>ajRV>RJ=?F2$tJb%m8iqHuVS@rv+@SsA03q+bl_@U7osz^Z}Z4Lyw+gVbSWD$=vfg6ISuN7AY zL;QaCdYSYE*12Z3FH&nRfxc$;5Df;$Ex*L?PRIDuBBh6Y5bOEc$ zy5An)<3{?aJiPkJ#oEU72d7ixY)inE=jrHeEEKm&=CO-`;aV1jLivf`&pItNPxY(75+rfh(u8`34v! zn&tTN0E?+!Y7Ug$43EefkD`e0C9cuvixqmgR|iun;*rq)%I1ULjN2=EHuF3?5|ZLc z75K~=J#5n$a6nj^ug+UdW>=et%bJo(u)nGP=1{KCnOcMU3ilSK1>&w?0Wjcf!5mC;y zwy=73H=<&u3s*mJ-_q0eQkAGO`<F^98za|CBgn!ITx@$POo%{V4B)!&QJ0+%9$O~@u=6Bgo zC@o!6ceVt}l{Fo_{F9XE$YHnE_Fx>C=4o%&Om;K2yI1ctUD;?B3kOo|2hN5YTI^|r zS~jBqqxXeGtnnW8lF_(|=9{jgpJr=3;$>aTzk^g3+m_WM1rOd|S7|JpoVIZb z!;^m4G#*3{Yvw#;iHn?coanXq7EkW62${xO$9oH&+>XESZv7NFYI_=cdi?sthqY>x zX|Q8q(Rk*IZaBQR_bK(LF>Y@)84j;LXs}&$MID*hG9LhLfy=xFR5m)8LV)PsaESAaqYc%Ep$;%Tvq)UR9rsd zE-yk3G&tAZZKjU}#c|33R&HNk=Km5{$a4$VIeP{=emjJ(c1o98!)69Qy=c?QE?NdU zArkWbJ;+?o@16FP)EPiSMb!n-GdXLY+uC8^4#i24EF9IcB3!NflE6g2_ptA=-H+3i zKWUWMR5RG)mPE2`+|8tL9oc-$kJ$Nb)d60?v4!|3269O-Pwh(P;jl;EoLNFLIj zyogC|D3R$WoDpK7<{aik*etpV(GNgpQOc><;)i}!tF z;N;v!>ZhmsX{AZ8En#AI9axvq{m|TyUXVEY`OHSd#dP}uOYE3B9EwEWcIlhn=Vn*D zj|fd5>!Xq56|Z}$Qh_f*KN0$`Y?<<ICyWTI~B4as>B3FfYNSu{RCi)(#|{E zZ8?7JK!9_I5m8iigeh!g!6KzZwNaLZSx57JR#2z)wg{MlHt5`q6Es*J7}n(KG<@qs7Br zct=enQF?3Z_4ebvV&l$1@pgK>PLvei)kysaB(oBDIBVFi7er!w%UbGLdu$?j@l}gc z`>N%7Xn$T=T)bderCCk}gm-PRxFtnz-pfzsofEAqsCOTS#%{!kZ?JWpZPUo!zR?r5 zbnbl>v93UZmC9pRCGdEJ&b}+*9+#~)MYmlkLE5ROS#NP`ZKmH#>7B3aIwcAxeV5vnYhfnl9_l1g`O+cj zNG|E11+;Y3myg1=k_Xo@(B37AU?x@v$;NDk<#FHP#tuC9{2|m5J{+$+uF!HPrO+#r zLux1L_?e+(ac}&HE4|PV!KkMMIbv|Z|HsSE=SM*B1^U~}u z2D0b0#+of5_G;BT61+vK><=3*ThWz%>qJ-@0wUo`_)|ArDME*>_80VY(hD5<)o7>C z54?(^)jM5yos}_trp$hLHPGr1lb;3pJ)x89 z@rjlS7)kZ)cIVMAmOZ+_TpN#j{28p)l|DOU{*Pm|?&=5JrltVGuM{#(2(U)_7Fk+< zp@q}p>nuFKAhehoYuM~w%C;Xb;7eb0Sek7Y7HEGm=3-E5SGC;r#jC9e{ccZ)WiJu& zX~JOsRugB~;1C%Lhu2^UmOM7^U)PxBIsMsnqq$>KVM8m^zmX=01Y{1BadOaKM~}LpTS;UA}%- zC_U(78TBWC4s9$*E3s4+yQ2p5AV9CUWlD@6RZZKnJM*^6um_)R`K!03gE}b4nuTt2 z2e#!;+K>LCU{sv&1&+MjvI+W}^g|T>Py%za=7qsaGJ2IX4H@k=s(T+yo>mU`O5FS_ z*M=NTwG+{W%ZJR1y>VWSIn*@Ipc~aG=*pZ^=(RFMc%^2XvPWvYaVkbqjY5GZK`Uv4 z_^q~*dPdVa8JA8PC>3X}09McE;Lcmy*_C1QGHQWuxyy+>`Y*qwv>QnH%)Vm3w zo{E73)~1MTb#=?(G}g-v1CccPE&O-U$Kb}%U*H&;q2beGd<~H3rc#IdMpu`o@w*n? zcU_1@kwNQS6`3Q@!N_#}@Mnd;-uf|HAu)Gc_VD+jR1qfjsZ#cOboJhC<|{qPa7H;w zw^YDM6`#meXZQj z+!|qRM2#7&oWoi#zD8krU6wW^e73)}9A;*HO~|w7WOlubUS|p(PGO)4|GJ~=;HuWJ zaX?%$NQN)mL9l4vAPw| z(1C1oUN@S=fSttdP(0=FhdE%rnTlA{0BcWV$RoL!e8oyyeHKpcuK==ZojMqSTD4Jq znjzwcLOf=2$g65mmX(`2kJHSH!&UHhx9>Wc3=~G@07yOzsPlCWd&tSt!(}qb;pjm} zSN9JgV5Ngy7iZ98=_I$!Gtuqp6a7c-F*@QfhxBO9Ws8l8+To2`wk8t-+Rye5u^+;O zFZEz`%z~FeMpdO9rH$G!1COW}jwcuKvfUw!+w^B~8(%-krwUG?k!zbh#7w(Y+_agD zzJoa(YM zTr#CYTPEwD@V)?)X)zKg_qT0D|6?)!BHhDK-TxB~! zNw3vZv#hyITjXwmR}Hj0Ng99=XX}3ZuM+o1^wxe*e5M$F?m(}G^Up|mOi|YiW}*b& z(uCnZ>L!YPD)>raQ40+nVjMWGUttJ(XWuW><%fM?==f6l~L$BFYK8N zrGMg`|Jv#P%=t2n?N@X?-PY}5dPO5O;{vF0LdrZrBG@y;TRfS=UUvJ7y&(+x5QFze zW&YPy_&@fyezXfQ!^3l|wEwtI|9R2>snehPXCdSg1olw=Papk%R?pv0N=7{kVB0^} zxBNdA*MI**J_28U2qy`+>!~vRyWhM*{fZh(%G&#n_3+`Nk|CgN?aIJ#&Y@OoYQ)55d!Le|q;yrfQtMKpsVMMrYz!aMBZsp6PM6mWqeOGx$SFOir{+Sl9P|0bQEW>Hq)$ diff --git a/website/docs/security/guardduty/findings/anonymous-user/finding-3.2.md b/website/docs/security/guardduty/findings/anonymous-user/finding-3.2.md deleted file mode 100644 index ceca1c26e..000000000 --- a/website/docs/security/guardduty/findings/anonymous-user/finding-3.2.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "Unauthorized creation or tampering of resources by unauthenticated user" -sidebar_position: 128 ---- - -This finding is used to indicate that an API commonly used to tamper with resources in a Kubernetes cluster was invoked by an unauthenticated user. - -To simulate this we'll create two `role` resources, **pod-create** and **psp-use**. - -```bash -$ kubectl create role pod-create --verb=create --resource=pods -n default -``` - -Once the `role` is created we'll need to bind it with the `system:anonymous` user. Below command will create `rolebinding` named **pod-access** and **psp-access** binding the `roles` **pod-create** and **psp-use** to the user named `system:anonymous`. - -```bash -$ kubectl create rolebinding pod-access --role=pod-create --user=system:anonymous -n default -``` - -Note that the above rolebinding command will trigger `Policy:Kubernetes/AnonymousAccessGranted` finding in guard duty within few minutes. - -Now let us create a Pod named nginx using a HTTP post call. - -```bash -$ API_URL=$(aws eks describe-cluster --name $EKS_CLUSTER_NAME --query "cluster.endpoint" --region $AWS_REGION --output text) -$ curl -k -v $API_URL/api/v1/namespaces/default/pods -X POST -H 'Content-Type: application/yaml' \ - --data-binary @eks-workshop/modules/security/Guardduty/anonymous/pod.yaml -``` - -Verify if the Pod is Running. - -```bash -$ kubectl get pods -n default - -NAME READY STATUS RESTARTS AGE -nginx 1/1 Running 0 2m17s -``` - -Within a few minutes we'll see the finding `Impact:Kubernetes/SuccessfulAnonymousAccess` in the GuardDuty portal. - -![](impact_SuccessfulAnonymousAccess.png) - -Cleanup: - -```bash -$ kubectl delete pod nginx -n default -$ kubectl delete rolebinding pod-access -n default -$ kubectl delete role pod-create -n default -``` diff --git a/website/docs/security/guardduty/findings/anonymous-user/finding2.md b/website/docs/security/guardduty/findings/anonymous-user/finding2.md deleted file mode 100644 index d672b5379..000000000 --- a/website/docs/security/guardduty/findings/anonymous-user/finding2.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Discovery tactics to access the Kubernetes API Anonymously" -sidebar_position: 127 ---- - -This finding is used to indicate Kubernetes API commonly used to gain knowledge about the resources has been invoked by an anonymous user `system:anonymous`. - -To simulate this we'll need to create a `clusterrolebinding` to bind `clusterrole` named **anonymous-view** to user named `system:anonymous`. - -```bash -$ kubectl create clusterrolebinding anonymous-view --clusterrole=view --user=system:anonymous -``` - -Note that the above rolebinding command will trigger `Policy:Kubernetes/AnonymousAccessGranted` finding in guard duty within few minutes. - -Identify the API server URL of the cluster and run a HTTP get call for URI `/api/v1/pods` using curl. This is equivalent to running `kubectl get pods -A -o json`. The difference between kubectl and curl is that while using kubectl we'll be attaching an auth bearer token to authenticate, however while running curl we're not using any auth bearer token and skipping authentication and using `system:anonymous` for authorization. - -```bash -$ API_URL=$(aws eks describe-cluster --name $EKS_CLUSTER_NAME --query "cluster.endpoint" --region $AWS_REGION --output text) -$ curl -k $API_URL/api/v1/pods -``` - -Within a few minutes we'll see the finding `Discovery:Kubernetes/SuccessfulAnonymousAccess` in the GuardDuty portal. - -![](discovery_SuccessfulAnonymousAccess.png) - -Run the following command to delete the `clusterrolebinding`. - -```bash -$ kubectl delete clusterrolebinding anonymous-view -``` diff --git a/website/docs/security/guardduty/findings/anonymous-user/finding3.md b/website/docs/security/guardduty/findings/anonymous-user/finding3.md deleted file mode 100644 index 0ad6f74bf..000000000 --- a/website/docs/security/guardduty/findings/anonymous-user/finding3.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Anonymous Access Granted to Kubernetes API" -sidebar_position: 126 ---- - -This finding indicates that the anonymous user `system:anonymous` was granted API permissions on the EKS cluster. This enables unauthenticated access to the permitted APIs. - -To simulate this we'll create a `role` **pod-create** in default namespace. - -```bash -$ kubectl create role pod-create --verb=get,list,watch,create,delete,patch --resource=pods -n default -``` - -Now that the `role` has been created, we can bind it with `system:anonymous` user. Below command will create `rolebinding` named **pod-access** binding `role` **pod-create** to the user named `system:anonymous`. - -```bash -$ kubectl create rolebinding pod-access --role=pod-create --user=system:anonymous -``` - -Within a few minutes we'll see the finding `Policy:Kubernetes/AnonymousAccessGranted` in the GuardDuty portal. - -![](Policy_AnonymousAccessGranted.png) - -Cleanup: - -```bash -$ kubectl delete rolebinding pod-access -n default -$ kubectl delete role pod-create -n default -``` diff --git a/website/docs/security/guardduty/findings/anonymous-user/impact_SuccessfulAnonymousAccess.png b/website/docs/security/guardduty/findings/anonymous-user/impact_SuccessfulAnonymousAccess.png deleted file mode 100644 index f52c0e8d1e583fc909d58c04d5909585b136015c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50869 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

-NCvn5-$sftgmgc(; zdEUjZ)fPb7&u7`5=6N!pZO6Q65)BQ4Bu7QDLhAz_WBJ%eD{#;g$7W2T@WG*a6odD8 z<4qCm0ziQ2&ckQpN1A9+p{&>l@LvCU!Ĺ@jI!TH3giN|b3EIoci)ckW_2@f2r4 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 JS3k4~{~zUPMYaF{ diff --git a/website/docs/security/guardduty/findings/anonymous-user/index.md b/website/docs/security/guardduty/findings/anonymous-user/index.md deleted file mode 100644 index 60fdfb93f..000000000 --- a/website/docs/security/guardduty/findings/anonymous-user/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Anonymous user access" -sidebar_position: 125 ---- - -In this lab exercise, we'll generate Kubernetes findings related to Anonymous user accessingKubernetesAPI in your Amazon EKS cluster. - -- `Discovery:Kubernetes/SuccessfulAnonymousAccess` -- `Policy:Kubernetes/AnonymousAccessGranted` -- `Impact:Kubernetes/SuccessfulAnonymousAccess` diff --git a/website/docs/security/guardduty/findings/finding1.md b/website/docs/security/guardduty/findings/finding1.md index 29a310358..56a4ef7e7 100644 --- a/website/docs/security/guardduty/findings/finding1.md +++ b/website/docs/security/guardduty/findings/finding1.md @@ -1,16 +1,30 @@ --- -title: "Unsafe execution into pod in `kube-system` namespace" +title: "Unsafe execution in kube-system namespace" sidebar_position: 124 --- This finding indicates that a command was executed inside a pod in kube-system namespace on EKS Cluster. -Run the below commands to generate this finding. +First lets run a pod in the `kube-system` namespace that has a shell: ```bash -$ kubectl -n kube-system exec $(kubectl -n kube-system get pods -o name -l k8s-app=kube-proxy| head -n1) -c kube-proxy -- pwd +$ kubectl run nginx --image=nginx -n kube-system +$ kubectl wait --for=condition=ready pod nginx -n kube-system +``` + +Then run the below command to generate this finding: + +```bash +$ kubectl -n kube-system exec nginx -- pwd +/ ``` Within a few minutes we'll see the finding `Execution:Kubernetes/ExecInKubeSystemPod` in the GuardDuty portal. ![](exec_finding.png) + +Clean up the pod we used to generate the finding: + +```bash +$ kubectl delete pod nginx -n kube-system +``` \ No newline at end of file diff --git a/website/docs/security/guardduty/findings/finding4.md b/website/docs/security/guardduty/findings/finding4.md index dc03557e6..a53047d81 100644 --- a/website/docs/security/guardduty/findings/finding4.md +++ b/website/docs/security/guardduty/findings/finding4.md @@ -1,5 +1,5 @@ --- -title: "Admin Access To Default ServiceAccount" +title: "Admin access to default Service Account" sidebar_position: 129 --- diff --git a/website/docs/security/guardduty/findings/finding5.md b/website/docs/security/guardduty/findings/finding5.md index d62cc1fee..6f4d0a470 100644 --- a/website/docs/security/guardduty/findings/finding5.md +++ b/website/docs/security/guardduty/findings/finding5.md @@ -1,5 +1,5 @@ --- -title: "Exposed Kubernetes Dashboard" +title: "Exposed Kubernetes dashboard" sidebar_position: 130 --- @@ -12,6 +12,7 @@ First off, we'll install the Kubernetes dashboard component. We'll be using the ```bash $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml +$ kubectl rollout status deployment/kubernetes-dashboard -n kubernetes-dashboard --timeout=60s ``` Let us patch the `kubernetes-dashboard` service to be type LoadBalancer. @@ -24,8 +25,8 @@ Within a few minutes we'll see the finding `Policy:Kubernetes/ExposedDashboard` ![](ExposedDashboard.png) -Cleanup: +Uninstall the dashboard with the following command: ```bash $ kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml -``` +``` \ No newline at end of file diff --git a/website/docs/security/guardduty/findings/finding6.md b/website/docs/security/guardduty/findings/finding6.md index d50549ea7..046a839c0 100644 --- a/website/docs/security/guardduty/findings/finding6.md +++ b/website/docs/security/guardduty/findings/finding6.md @@ -1,5 +1,5 @@ --- -title: "Privileged Container" +title: "Privileged container" sidebar_position: 131 --- @@ -21,7 +21,7 @@ Within a few minutes we'll see the finding `PrivilegeEscalation:Kubernetes/Privi ![](PrivilegedContainer.png) -Cleanup: +Lets delete this pod before we move on: ```bash $ kubectl delete -f ~/environment/eks-workshop/modules/security/Guardduty/privileged/privileged-pod-example.yaml diff --git a/website/docs/security/guardduty/findings/finding7.md b/website/docs/security/guardduty/findings/finding7.md index 186e60495..2e7c97a4e 100644 --- a/website/docs/security/guardduty/findings/finding7.md +++ b/website/docs/security/guardduty/findings/finding7.md @@ -1,5 +1,5 @@ --- -title: "Container With Sensitive Mount" +title: "Container with sensitive mount" sidebar_position: 132 --- @@ -21,7 +21,7 @@ Within a few minutes we'll see the finding `Persistence:Kubernetes/ContainerWith ![](ContainerWithSensitiveMount.png) -Cleanup: +Lets delete this pod before we move on: ```bash $ kubectl delete -f ~/environment/eks-workshop/modules/security/Guardduty/mount/privileged-pod-example.yaml diff --git a/website/docs/security/guardduty/index.md b/website/docs/security/guardduty/index.md index 359553c25..b2588ed64 100644 --- a/website/docs/security/guardduty/index.md +++ b/website/docs/security/guardduty/index.md @@ -4,6 +4,16 @@ sidebar_position: 120 sidebar_custom_props: {"module": true} --- +:::tip Before you start + +Prepare your environment for this section: + +```bash timeout=300 wait=30 +$ prepare-environment +``` + +::: + Amazon GuardDuty for EKS Protection monitors control plane activity by analyzing Kubernetes audit logs from existing and new Amazon EKS clusters in your accounts. GuardDuty is integrated with Amazon EKS, giving it direct access to the Kubernetes audit logs without requiring you to turn on or store these logs. Once a threat is detected, GuardDuty generates a security finding that includes container details such as pod ID, container image ID, and associated tags. -At launch, GuardDuty for EKS Protection includes 27 new GuardDuty finding types that can help detect threats related to user and application activity captured in Kubernetes audit logs +At launch, GuardDuty for EKS Protection includes 27 new GuardDuty finding types that can help detect threats related to user and application activity captured in Kubernetes audit logs. From 30c9642e2939026e823c636d002e165a5a7ba20a Mon Sep 17 00:00:00 2001 From: Benjamin Gardiner Date: Wed, 16 Aug 2023 17:09:36 -0700 Subject: [PATCH 06/22] Adding AIML Module --- governance/steering.md | 60 ++++---- .../aiml/inferentia/.workshop/cleanup.sh | 25 ++++ .../inferentia/.workshop/terraform/addon.tf | 128 ++++++++++++++++++ .../terraform/addon_infrastructure.tf | 6 + .../aiml/inferentia/base/config.properties | 1 + .../aiml/inferentia/base/kustomization.yaml | 25 ++++ .../aiml/inferentia/base/namespace.yaml | 4 + .../aiml/inferentia/base/serviceaccount.yaml | 7 + .../aiml/inferentia/compiler/compiler.yaml | 16 +++ .../inferentia/compiler/config.properties | 1 + .../inferentia/compiler/kustomization.yaml | 26 ++++ .../modules/aiml/inferentia/compiler/trace.py | 17 +++ .../inferentia/inference/config.properties | 1 + .../aiml/inferentia/inference/inference.py | 55 ++++++++ .../aiml/inferentia/inference/inference.yaml | 19 +++ .../inferentia/inference/kustomization.yaml | 26 ++++ .../inferentia/provisioner/config.properties | 2 + .../inferentia/provisioner/kustomization.yaml | 37 +++++ .../inferentia/provisioner/provisioner.yaml | 35 +++++ website/docs/aiml/index.md | 9 ++ website/docs/aiml/inferentia/_category_.json | 3 + .../aiml/inferentia/assets/CreateModel.png | Bin 0 -> 46634 bytes .../docs/aiml/inferentia/assets/Inference.png | Bin 0 -> 59614 bytes website/docs/aiml/inferentia/compile.md | 64 +++++++++ website/docs/aiml/inferentia/index.md | 40 ++++++ website/docs/aiml/inferentia/inference.md | 114 ++++++++++++++++ website/docs/aiml/inferentia/wrapup.md | 14 ++ website/docusaurus.config.js | 8 +- website/sidebars.js | 11 +- 29 files changed, 723 insertions(+), 31 deletions(-) create mode 100644 manifests/modules/aiml/inferentia/.workshop/cleanup.sh create mode 100644 manifests/modules/aiml/inferentia/.workshop/terraform/addon.tf create mode 100644 manifests/modules/aiml/inferentia/.workshop/terraform/addon_infrastructure.tf create mode 100644 manifests/modules/aiml/inferentia/base/config.properties create mode 100644 manifests/modules/aiml/inferentia/base/kustomization.yaml create mode 100644 manifests/modules/aiml/inferentia/base/namespace.yaml create mode 100644 manifests/modules/aiml/inferentia/base/serviceaccount.yaml create mode 100644 manifests/modules/aiml/inferentia/compiler/compiler.yaml create mode 100644 manifests/modules/aiml/inferentia/compiler/config.properties create mode 100644 manifests/modules/aiml/inferentia/compiler/kustomization.yaml create mode 100644 manifests/modules/aiml/inferentia/compiler/trace.py create mode 100644 manifests/modules/aiml/inferentia/inference/config.properties create mode 100644 manifests/modules/aiml/inferentia/inference/inference.py create mode 100644 manifests/modules/aiml/inferentia/inference/inference.yaml create mode 100644 manifests/modules/aiml/inferentia/inference/kustomization.yaml create mode 100644 manifests/modules/aiml/inferentia/provisioner/config.properties create mode 100644 manifests/modules/aiml/inferentia/provisioner/kustomization.yaml create mode 100644 manifests/modules/aiml/inferentia/provisioner/provisioner.yaml create mode 100644 website/docs/aiml/index.md create mode 100644 website/docs/aiml/inferentia/_category_.json create mode 100644 website/docs/aiml/inferentia/assets/CreateModel.png create mode 100644 website/docs/aiml/inferentia/assets/Inference.png create mode 100644 website/docs/aiml/inferentia/compile.md create mode 100644 website/docs/aiml/inferentia/index.md create mode 100644 website/docs/aiml/inferentia/inference.md create mode 100644 website/docs/aiml/inferentia/wrapup.md diff --git a/governance/steering.md b/governance/steering.md index 3540af136..4b6a244ec 100644 --- a/governance/steering.md +++ b/governance/steering.md @@ -1,49 +1,59 @@ # Steering Committee and Module Leads + ## Steering Commitee Members + The Steering Committee is a 6 member body, overseeing the governance of the EKS Workshop. + ### Terms end in February 2024 -|Name|Profile|Role| -|:----|:-------|:----| -|Sai Vennam|[@svennam92](https://github.com/svennam92)|Principal EKS DA -|Niall Thomson|[@niallthomson](https://github.com/niallthomson)|Specialist Solution Architect, Containers| -|Ray Krueger|[@raykrueger](https://github.com/raykrueger)|Principal Container Specialist| -|Ameet Naik|[@ameetnaik](https://github.com/ameetnaik)|Technical Account Manager| -|Kamran Habib|[@kmhabib](https://github.com/kmhabib)|Solution Architect (TFC at large)| -|Theo Salvo|[@buzzsurfr](https://github.com/buzzsurfr)|Container Specialist (TFC core team member)| + +| Name | Profile | Role | +| :------------ | :----------------------------------------------- | :------------------------------------------ | +| Sai Vennam | [@svennam92](https://github.com/svennam92) | Principal EKS DA | +| Niall Thomson | [@niallthomson](https://github.com/niallthomson) | Specialist Solution Architect, Containers | +| Ray Krueger | [@raykrueger](https://github.com/raykrueger) | Principal Container Specialist | +| Ameet Naik | [@ameetnaik](https://github.com/ameetnaik) | Technical Account Manager | +| Kamran Habib | [@kmhabib](https://github.com/kmhabib) | Solution Architect (TFC at large) | +| Theo Salvo | [@buzzsurfr](https://github.com/buzzsurfr) | Container Specialist (TFC core team member) | ## Working Groups + The working groups are led by chairs (6 month terms) and maintainers (6 month terms). -|Working Group|Chair|Maintainers| -|:----|:-------|:----| -|Infrastructure|[Niall Thomson](https://github.com/niallthomson)|| -|Fundamentals|[Sai Vennam](https://github.com/svennam92)|[Bijith Nair](https://github.com/bijithnair), [Tolu Okuboyejo](https://github.com/oktab1), [Hemanth AVS](https://github.com/hemanth-avs)| -|Autoscaling|[Sanjeev Ganjihal](https://github.com/sanjeevrg89)|| -|Automation|[Carlos Santana](https://github.com/csantanapr)|[Tsahi Duek](https://github.com/tsahiduek), [Christina Andonov](https://github.com/candonov), [SĂ©bastien Allamand](https://github.com/allamand)| -|Machine Learning|[Masatoshi Hayashi](https://github.com/literalice)|| -|Networking|[Sheetal Joshi](https://github.com/sheetaljoshi)|[Umair Ishaq](https://github.com/umairishaq)| -|Observability|[Nirmal Mehta](https://github.com/normalfaults)|[Steven David](https://github.com/StevenDavid)| -|Security|[Rodrigo Bersa](https://github.com/rodrigobersa)| | -|Storage|[Eric Heinrichs](https://github.com/heinrichse)|[Andrew Peng](https://github.com/pengc99)| +| Working Group | Chair | Maintainers | +| :--------------- | :------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | +| Infrastructure | [Niall Thomson](https://github.com/niallthomson) | | +| Fundamentals | [Sai Vennam](https://github.com/svennam92) | [Bijith Nair](https://github.com/bijithnair), [Tolu Okuboyejo](https://github.com/oktab1), [Hemanth AVS](https://github.com/hemanth-avs) | +| Autoscaling | [Sanjeev Ganjihal](https://github.com/sanjeevrg89) | | +| Automation | [Carlos Santana](https://github.com/csantanapr) | [Tsahi Duek](https://github.com/tsahiduek), [Christina Andonov](https://github.com/candonov), [SĂ©bastien Allamand](https://github.com/allamand) | +| Machine Learning | [Masatoshi Hayashi](https://github.com/literalice) | [Benjamin Gardiner](https://github.com/bkgardiner) | +| Networking | [Sheetal Joshi](https://github.com/sheetaljoshi) | [Umair Ishaq](https://github.com/umairishaq) | +| Observability | [Nirmal Mehta](https://github.com/normalfaults) | [Steven David](https://github.com/StevenDavid) | +| Security | [Rodrigo Bersa](https://github.com/rodrigobersa) | | +| Storage | [Eric Heinrichs](https://github.com/heinrichse) | [Andrew Peng](https://github.com/pengc99) | ## Wranglers + Wranglers will work across all topic areas and serve for at least 6 months. |Name|Profile|Role| |:----|:-------|:----| |Math Bruneau|[@ROunofF](https://github.com/ROunofF)|Specialist Solution Architect, Containers| - ## Emeritus -|Name|Profile|Role| -|:----|:-------|:----| -|Jeremy Cowan|[@jicowan](https://github.com/jicowan)|EKS DA manager| + +| Name | Profile | Role | +| :----------- | :------------------------------------- | :------------- | +| Jeremy Cowan | [@jicowan](https://github.com/jicowan) | EKS DA manager | ## Meetings + ### Schedule and Cadence + The steering committee will host a public meeting every third Thursday of the month at 9AM CT. ### Resources -* + +- ## Contact -* Mailing List: + +- Mailing List: diff --git a/manifests/modules/aiml/inferentia/.workshop/cleanup.sh b/manifests/modules/aiml/inferentia/.workshop/cleanup.sh new file mode 100644 index 000000000..25b5c37aa --- /dev/null +++ b/manifests/modules/aiml/inferentia/.workshop/cleanup.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -e + +echo "Deleting AIML resources..." + +kubectl delete namespace aiml > /dev/null + +echo "Deleting Karpenter provisioners..." + +kubectl delete provisioner --all > /dev/null +kubectl delete awsnodetemplate --all > /dev/null + +echo "Waiting for Karpenter nodes to be removed..." + +EXIT_CODE=0 + +timeout --foreground -s TERM 30 bash -c \ + 'while [[ $(kubectl get nodes --selector=type=karpenter -o json | jq -r ".items | length") -gt 0 ]];\ + do sleep 5;\ + done' || EXIT_CODE=$? + +if [ $EXIT_CODE -ne 0 ]; then + echo "Warning: Karpenter nodes did not clean up" +fi \ No newline at end of file diff --git a/manifests/modules/aiml/inferentia/.workshop/terraform/addon.tf b/manifests/modules/aiml/inferentia/.workshop/terraform/addon.tf new file mode 100644 index 000000000..5d872d5ce --- /dev/null +++ b/manifests/modules/aiml/inferentia/.workshop/terraform/addon.tf @@ -0,0 +1,128 @@ +data "aws_subnets" "private" { + tags = { + created-by = "eks-workshop-v2" + env = local.addon_context.eks_cluster_id + } + + filter { + name = "tag:Name" + values = ["*Private*"] + } +} + +module "iam_assumable_role_inference" { + source = "terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc" + version = "~> v5.5.0" + create_role = true + role_name = "${local.addon_context.eks_cluster_id}-inference" + provider_url = local.addon_context.eks_oidc_issuer_url + role_policy_arns = [aws_iam_policy.inference.arn] + oidc_fully_qualified_subjects = ["system:serviceaccount:aiml:inference"] + + tags = local.tags +} + + +resource "aws_iam_policy" "inference" { + name = "${local.addon_context.eks_cluster_id}-inference" + path = "/" + description = "IAM policy for the inferenct workload" + + policy = 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 (8``{PJJmG%~k_bJY!RW&gEqZG}g-#z< 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 literal 0 HcmV?d00001 diff --git a/website/docs/aiml/inferentia/compile.md b/website/docs/aiml/inferentia/compile.md new file mode 100644 index 000000000..3f2bfa250 --- /dev/null +++ b/website/docs/aiml/inferentia/compile.md @@ -0,0 +1,64 @@ +--- +title: "Compile a Pre-Trained Model for AWS Inferentia" +sidebar_position: 20 +--- + +When you want a model uses AWS Inferentia it needs be compiled for use with AWS Inferentia using the AWS Neuron SDK. + +This is the code for compiling the model that we will use: + +```file +manifests/modules/aiml/inferentia/compiler/trace.py +``` + +This code loads the pre-trained ResNet-50 model and sets it to evaluation mode. Note that we are not adding any additional training data to the model. We then save the model using the AWS Neuron SDK. + +We will run this code in a Pod on EKS. This is the manifest file for running the Pod: + +```file +manifests/modules/aiml/inferentia/compiler/compiler.yaml +``` + +We will deploy the Pod on the EKS cluster and compile a sample model for use with AWS Inferentia. Compiling a model for AWS Inferentia requires the [AWS Neuron SDK](https://aws.amazon.com/machine-learning/neuron/). This SDK is included with the [Deep Learning Containers (DLCs)](https://github.com/aws/deep-learning-containers/blob/v8.12-tf-1.15.5-tr-gpu-py37/available_images.md#neuron-inference-containers) that are provided by AWS. + +This lab uses DLC to compile the model on EKS. Create the Pod by running the following commands and wait for the Pod to meet the Ready condition. + +```bash timeout=300 +$ kubectl apply -k ~/environment/eks-workshop/modules/aiml/inferentia/compiler/ +$ kubectl -n aiml wait --for=condition=Ready --timeout=7m pod/compiler +``` + +:::note +This command can take up to 7 min. +::: + +Next, copy the code for compiling a model on to the pod and run it: + +```bash timeout=180 +$ kubectl -n aiml cp ~/environment/eks-workshop/modules/aiml/inferentia/compiler/trace.py compiler:/ +$ kubectl -n aiml exec -it compiler -- python /trace.py + +.... +Compiler status PASS +INFO:Neuron:Number of arithmetic operators (post-compilation) before = 175, compiled = 175, percent compiled = 100.0% +INFO:Neuron:The neuron partitioner created 1 sub-graphs +INFO:Neuron:Neuron successfully compiled 1 sub-graphs, Total fused subgraphs = 1, Percent of model sub-graphs successfully compiled = 100.0% +INFO:Neuron:Compiled these operators (and operator counts) to Neuron: +INFO:Neuron: => aten::_convolution: 53 +INFO:Neuron: => aten::adaptive_avg_pool2d: 1 +INFO:Neuron: => aten::add_: 16 +INFO:Neuron: => aten::batch_norm: 53 +INFO:Neuron: => aten::flatten: 1 +INFO:Neuron: => aten::linear: 1 +INFO:Neuron: => aten::max_pool2d: 1 +INFO:Neuron: => aten::relu_: 49 + +``` + +Finally, upload the model to the S3 bucket that has been created for you. This will ensure we can use the model later in the lab. + +```bash +$ kubectl -n aiml exec -it compiler -- aws s3 cp ./resnet50_neuron.pt s3://$AIML_NEURON_BUCKET_NAME/ + +upload: ./resnet50_neuron.pt to s3://eksworkshop-inference20230511204343601500000001/resnet50_neuron.pt +``` diff --git a/website/docs/aiml/inferentia/index.md b/website/docs/aiml/inferentia/index.md new file mode 100644 index 000000000..0d199d55b --- /dev/null +++ b/website/docs/aiml/inferentia/index.md @@ -0,0 +1,40 @@ +--- +title: "Inference with AWS Inferentia" +sidebar_position: 10 +chapter: true +sidebar_custom_props: { "module": true } +--- + +:::tip Before you start +Prepare your environment for this section: + +```bash timeout=300 wait=30 +$ prepare-environment aiml/inferentia +``` + +This will make the following changes to your lab environment: + +- Installs Karpenter in the Amazon EKS cluster +- Creates an S3 Bucket to store results +- Creates an IAM Role for the Pods to use +- Installs the [AWS Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/containers/dlc-then-eks-devflow.html) device plugin + +You can view the Terraform that applies these changes [here](https://github.com/VAR::MANIFESTS_OWNER/VAR::MANIFESTS_REPOSITORY/tree/VAR::MANIFESTS_REF/manifests/modules/aiml/inferentia/.workshop/terraform). + +::: + +[AWS Inferentia](https://aws.amazon.com/machine-learning/inferentia/?nc1=h_ls) is the purpose-built accelerator designed to accelerate deep learning workloads. + +Inferentia has processing cores called Neuron Cores, which have high-speed access to models stored in on-chip memory. + +You can easily use the accelerator on EKS. The Neuron device plugin exposes Neuron cores and devices to Kubernetes as a resource. When your workloads require Neuron cores, the Kubernetes scheduler can assign the Inferentia node to the workloads. You can even provision the node automatically using Karpenter. + +This lab provides a tutorial on how to use Inferentia to accelerate deep learning inference workloads on EKS. +In this lab we will: + +1. Compile a ResNet-50 pre-trained model for use with AWS Inferentia +2. Upload this model to an S3 Bucket for later use +3. Create a Karpenter Provisioner to provision Inferentia EC2 instances +4. Launch an inference Pod that uses our previous model to run our inference against + +Let's get started. diff --git a/website/docs/aiml/inferentia/inference.md b/website/docs/aiml/inferentia/inference.md new file mode 100644 index 000000000..af169d52c --- /dev/null +++ b/website/docs/aiml/inferentia/inference.md @@ -0,0 +1,114 @@ +--- +title: "Run Inference on an AWS Inferentia Node using Amazon EKS" +sidebar_position: 30 +--- + +Now we can use the compiled model to run an inference workload on an AWS Inferentia node. + +### Install Device Plugin for AWS Inferentia + +In order for our DLC to use the Neuron cores they need to be exposed. The [Neuron device plugin Kubernetes manifest files](https://github.com/aws-neuron/aws-neuron-sdk/tree/master/src/k8) expose the Neuron cores to the DLC. These manifest files have been pre-installed into the EKS Cluster. + +When a Pod requires the exposed Neuron cores, the Kubernetes scheduler can provision an Inferentia node to schedule the Pod to. This is the Pod that we will schedule. Note that we have a resource requirement of `aws.amazon.com/neuron`. + +```file +manifests/modules/aiml/inferentia/inference/inference.yaml +``` + +### Set up a provisioner of Karpenter for launching a node which has the Inferentia chip + +The lab uses Karpenter to provision an Inferentia node. Karpenter can detect the pending pod which requires Neuron cores and launch an inf1 instance which has the required Neuron cores. + +:::tip +You can learn more about Karpenter in the [Karpenter module](../../autoscaling/compute/karpenter/index.md) that's provided in this workshop. +::: + +Karpenter has been installed in our EKS cluster, and runs as a deployment: + +```bash +$ kubectl get deployment -n karpenter +NAME READY UP-TO-DATE AVAILABLE AGE +karpenter 2/2 2 2 105s +``` + +The only setup that we will need to do is to update our EKS IAM mappings to allow Karpenter nodes to join the cluster: + +```bash +$ eksctl create iamidentitymapping --cluster $EKS_CLUSTER_NAME \ + --region=$AWS_REGION --arn $KARPENTER_NODE_ROLE \ + --group system:bootstrappers --group system:nodes \ + --username system:node:{{EC2PrivateDNSName}} +``` + +Karpenter requires a provisioner to provision nodes. This is the Karpenter provisioner that we will create: + +```file +manifests/modules/aiml/inferentia/provisioner/provisioner.yaml +``` + +Apply the provisioner manifest: + +```bash +$ kubectl apply -k ~/environment/eks-workshop/modules/aiml/inferentia/provisioner/ +``` + +### Create a pod for inference + +Now we can deploy a Pod for inference: + +```bash +$ kubectl apply -k ~/environment/eks-workshop/modules/aiml/inferentia/inference/ +``` + +Karpenter detects the pending pod which needs Neuron cores and launches an inf1 instance which has the Inferentia chip. Monitor the instance provisioning with the following command: + +```bash test=false +$ kubectl logs -f -n karpenter deploy/karpenter -c controller + +2022-10-28T08:24:42.704Z DEBUG controller.provisioning.cloudprovider Created launch template, Karpenter-eks-workshop-cluster-3507260904097783831 {"commit": "37c8653", "provisioner": "default"} +2022-10-28T08:24:45.125Z INFO controller.provisioning.cloudprovider Launched instance: i-09ddba6280017ae4d, hostname: ip-100-64-10-250.ap-northeast-1.compute.internal, type: inf1.xlarge, zone: ap-northeast-1a, capacityType: spot {"commit": "37c8653", "provisioner": "default"} +2022-10-28T08:24:45.136Z INFO controller.provisioning Created node with 1 pods requesting {"aws.amazon.com/neuron":"1","cpu":"125m","pods":"6"} from types inf1.xlarge, inf1.2xlarge, inf1.6xlarge, inf1.24xlarge {"commit": "37c8653", "provisioner": "default"} +2022-10-28T08:24:45.136Z INFO controller.provisioning Waiting for unschedulable pods {"commit": "37c8653"} +``` + +The inference pod should be scheduled on the node provisioned by Karpenter. Check if the Pod is in it's ready state: + +:::note +It can take up to 8 minutes to provision the node, add it to the EKS cluster, and start the pod. +::: + +```bash timeout=360 +$ kubectl -n aiml wait --for=condition=Ready --timeout=8m pod/inference +``` + +### Run an inference + +This is the code that we will be using to run inference using a Neuron core on Inferentia: + +```file +manifests/modules/aiml/inferentia/inference/inference.py +``` + +This Python code does the following tasks: + +1. It downloads and stores an image of a small kitten. +2. It fetches the labels for classifying the image. +3. It then imports this image and normalizes it into a tensor. +4. It loads our previously created model. +5. It runs the prediction on our small kitten image. +6. It gets the top 5 results from the prediction and prints these to the command-line. + +We copy this code to the Pod, download our previously uploaded model, and run the code: + +```bash +$ kubectl -n aiml cp ~/environment/eks-workshop/modules/aiml/inferentia/inference/inference.py inference:/ +$ kubectl -n aiml exec -it inference -- aws s3 cp s3://$AIML_NEURON_BUCKET_NAME/resnet50_neuron.pt ./ +$ kubectl -n aiml exec -it inference -- python /inference.py + +Top 5 labels: + ['tiger', 'lynx', 'tiger_cat', 'Egyptian_cat', 'tabby'] +``` + +As output we get the top 5 labels back. We are running the inference on an image of a small kitten using ResNet-50's pre-trained model, so these results are expected. As a possible next step to improve performance we could create our own data set of images and train our own model for our specific use case. This could improve our prediction results. + +This concludes this lab on using AWS Inferentia with Amazon EKS. diff --git a/website/docs/aiml/inferentia/wrapup.md b/website/docs/aiml/inferentia/wrapup.md new file mode 100644 index 000000000..8d70b2bd1 --- /dev/null +++ b/website/docs/aiml/inferentia/wrapup.md @@ -0,0 +1,14 @@ +--- +title: "Real World Implementation" +sidebar_position: 40 +--- + +In the previous sections we've seen how we can use Amazon EKS to build models for AWS Inferentia and deploy models on EKS using Inferentia nodes. In both these examples we've executed Python code inside our containers from our command-line. In a real world scenario we do not want to run these commands manually, but rather have the container execute the commands. + +For building the model we would want use the DLC container as our base image and add our Python code to it. We would then store this container image in our container repository like Amazon ECR. We would use a Kubernetes Job to run this container image on EKS and store the generated model to S3. + +![Build Model](./assets/CreateModel.png) + +For running inference against our model we would want to modify our code to allow other applications or users to retrieve the classification results from the model. This could be done by creating a REST API that we can call and responds with our classification results. We would run this application as a Kubernetes Deployment within our cluster using the AWS Inferentia resource requirement: `aws.amazon.com/neuron`. + +![Inference Model](./assets/Inference.png) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 7cde82a4e..1243e151e 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -31,7 +31,7 @@ const config = { onBrokenLinks: 'throw', onBrokenMarkdownLinks: 'warn', favicon: 'img/favicon.png', - noIndex: process.env.ENABLE_INDEX!=="1", + noIndex: process.env.ENABLE_INDEX !== "1", organizationName: 'aws-samples', projectName: 'eks-workshop-v2', @@ -134,6 +134,12 @@ const config = { position: 'left', label: 'Automation', }, + { + type: 'doc', + docId: 'aiml/index', + position: 'left', + label: 'AIML', + }, { href: 'https://github.com/aws-samples/eks-workshop-v2', position: 'right', diff --git a/website/sidebars.js b/website/sidebars.js index c80f8393c..3f432d0b5 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -14,13 +14,14 @@ /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ const sidebars = { // By default, Docusaurus generates a sidebar from the docs folder structure - introduction: [{type: 'autogenerated', dirName: 'introduction'}], - fundamentals: [{type: 'autogenerated', dirName: 'fundamentals'}], - security: [{type: 'autogenerated', dirName: 'security'}], - networking: [{type: 'autogenerated', dirName: 'networking'}], - autoscaling: [{type: 'autogenerated', dirName: 'autoscaling'}], + introduction: [{ type: 'autogenerated', dirName: 'introduction' }], + fundamentals: [{ type: 'autogenerated', dirName: 'fundamentals' }], + security: [{ type: 'autogenerated', dirName: 'security' }], + networking: [{ type: 'autogenerated', dirName: 'networking' }], + autoscaling: [{ type: 'autogenerated', dirName: 'autoscaling' }], observability: [{ type: 'autogenerated', dirName: 'observability' }], automation: [{ type: 'autogenerated', dirName: 'automation' }], + aiml: [{ type: 'autogenerated', dirName: 'aiml' }], }; module.exports = sidebars; From 3a1538ce3e4533d64c8c190e8a90355525694ed7 Mon Sep 17 00:00:00 2001 From: Niall Thomson Date: Thu, 17 Aug 2023 16:18:18 +0000 Subject: [PATCH 07/22] Fix repository ref being passed to CFN deploy instructions --- website/docs/introduction/setup/your-account/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/website/docs/introduction/setup/your-account/index.md b/website/docs/introduction/setup/your-account/index.md index e22b89dd8..6a3681065 100644 --- a/website/docs/introduction/setup/your-account/index.md +++ b/website/docs/introduction/setup/your-account/index.md @@ -30,6 +30,7 @@ Once CloudShell has loaded run the following commands: $ wget -q https://raw.githubusercontent.com/VAR::MANIFESTS_OWNER/VAR::MANIFESTS_REPOSITORY/VAR::MANIFESTS_REF/lab/cfn/eks-workshop-ide-cfn.yaml -O eks-workshop-ide-cfn.yaml $ aws cloudformation deploy --stack-name eks-workshop-ide \ --template-file ./eks-workshop-ide-cfn.yaml \ + --parameter-overrides RepositoryRef=VAR::MANIFESTS_REF \ --capabilities CAPABILITY_NAMED_IAM Waiting for changeset to be created.. Waiting for stack create/update to complete From 088d6fb026bdc77cffa9dcd4cf82866f70429d16 Mon Sep 17 00:00:00 2001 From: Niall Thomson Date: Thu, 17 Aug 2023 10:43:39 -0600 Subject: [PATCH 08/22] Delete old workflow to update helm chart references --- .github/workflows/helm-update.yaml | 35 ------------------------------ 1 file changed, 35 deletions(-) delete mode 100644 .github/workflows/helm-update.yaml diff --git a/.github/workflows/helm-update.yaml b/.github/workflows/helm-update.yaml deleted file mode 100644 index 8f01adbc3..000000000 --- a/.github/workflows/helm-update.yaml +++ /dev/null @@ -1,35 +0,0 @@ -name: Helm Chart Update - -on: - workflow_dispatch: - schedule: - - cron: '30 5 * * *' - -jobs: - check: - name: check - runs-on: ubuntu-latest - steps: - - name: Check out code - uses: actions/checkout@v2 - - name: Set up Python 3.8 - uses: actions/setup-python@v2 - with: - python-version: 3.8 - - name: Run check - working-directory: helm/src - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - python check_helm_charts.py -c ../charts.yaml -o ../../terraform/modules/cluster/helm_versions.tf.json - - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 - with: - token: ${{ secrets.GITHUB_TOKEN }} - commit-message: Update helm charts - title: 'chore: Update helm charts' - body: | - Auto-generated pull request to update Helm charts in `helm/charts.yaml` - branch: update-helm-charts - labels: | - dependencies From cf346d45607a9026a680d399c22541d274c157c5 Mon Sep 17 00:00:00 2001 From: Niall Thomson Date: Fri, 18 Aug 2023 16:51:21 +0000 Subject: [PATCH 09/22] Add .envrc to gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index a4573f75b..770eddcb9 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,5 @@ env *.zip cdk.out + +.envrc \ No newline at end of file From 4e04ca79ffe6aff54eebd34e001f1c8f0d2b75b2 Mon Sep 17 00:00:00 2001 From: Benjamin Gardiner Date: Fri, 18 Aug 2023 12:19:22 -0700 Subject: [PATCH 10/22] Resolved pull request comments --- website/docs/aiml/inferentia/_category_.json | 2 +- website/docs/aiml/inferentia/inference.md | 28 +++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/website/docs/aiml/inferentia/_category_.json b/website/docs/aiml/inferentia/_category_.json index 38eabb7ef..e7e5cb29b 100644 --- a/website/docs/aiml/inferentia/_category_.json +++ b/website/docs/aiml/inferentia/_category_.json @@ -1,3 +1,3 @@ { - "collapsed": false + "collapsed": true } \ No newline at end of file diff --git a/website/docs/aiml/inferentia/inference.md b/website/docs/aiml/inferentia/inference.md index af169d52c..cfe123a7b 100644 --- a/website/docs/aiml/inferentia/inference.md +++ b/website/docs/aiml/inferentia/inference.md @@ -28,7 +28,7 @@ Karpenter has been installed in our EKS cluster, and runs as a deployment: ```bash $ kubectl get deployment -n karpenter NAME READY UP-TO-DATE AVAILABLE AGE -karpenter 2/2 2 2 105s +karpenter 1/1 1 1 5m52s ``` The only setup that we will need to do is to update our EKS IAM mappings to allow Karpenter nodes to join the cluster: @@ -81,6 +81,32 @@ It can take up to 8 minutes to provision the node, add it to the EKS cluster, an $ kubectl -n aiml wait --for=condition=Ready --timeout=8m pod/inference ``` +We can use the following command to get more details on the node that was provisioned to schedule our pod onto: + +```bash +$ kubectl get node -l karpenter.sh/provisioner-name=aiml -o jsonpath='{.items[0].status.capacity}' | jq . +``` + +This output shows the capacity this node has: + +```json +{ + "attachable-volumes-aws-ebs": "39", + "aws.amazon.com/neuron": "1", + "aws.amazon.com/neuroncore": "4", + "aws.amazon.com/neurondevice": "1", + "cpu": "4", + "ephemeral-storage": "104845292Ki", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "7832960Ki", + "pods": "38", + "vpc.amazonaws.com/pod-eni": "38" +} +``` + +We can see that this node as a `aws.amazon.com/neuron` of 1. Karpenter provisioned this node for us as that's how many neuron the pod requested. + ### Run an inference This is the code that we will be using to run inference using a Neuron core on Inferentia: From 2e97b9be6090f1ecb313f7b826a06359f6a0c39e Mon Sep 17 00:00:00 2001 From: Benjamin Gardiner Date: Fri, 18 Aug 2023 18:07:33 -0700 Subject: [PATCH 11/22] Missing label for clean up script --- manifests/modules/aiml/inferentia/provisioner/provisioner.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/manifests/modules/aiml/inferentia/provisioner/provisioner.yaml b/manifests/modules/aiml/inferentia/provisioner/provisioner.yaml index cc9bb6e50..a0f861d02 100644 --- a/manifests/modules/aiml/inferentia/provisioner/provisioner.yaml +++ b/manifests/modules/aiml/inferentia/provisioner/provisioner.yaml @@ -3,6 +3,8 @@ kind: Provisioner metadata: name: aiml spec: + labels: + type: karpenter requirements: - key: "karpenter.sh/capacity-type" operator: In From 9ef7987041cbc8d468991e803358ba7e2d273a04 Mon Sep 17 00:00:00 2001 From: Niall Thomson Date: Tue, 22 Aug 2023 13:18:20 -0600 Subject: [PATCH 12/22] Remove tests icon from README --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 93e4f04b2..4e8654da5 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # Amazon Elastic Kubernetes Service Workshop -![Tests](https://github.com/aws-samples/eks-workshop-v2/actions/workflows/ci.yaml/badge.svg?branch=main) - Welcome to the repository for the [Amazon Elastic Kubernetes Services workshop](https://eksworkshop.com). This contains the source for the website content as well as the accompanying infrastructure-as-code to set up a workshop lab environment in your AWS account. Please review the [Introduction](https://www.eksworkshop.com/docs/introduction/) chapter of the workshop for more details. ## Introduction From 408c5edd71646915b857f7aa47b979bc06c49d46 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Aug 2023 14:24:26 +0000 Subject: [PATCH 13/22] Bump yaml from 2.2.1 to 2.2.2 in /website Bumps [yaml](https://github.com/eemeli/yaml) from 2.2.1 to 2.2.2. - [Release notes](https://github.com/eemeli/yaml/releases) - [Commits](https://github.com/eemeli/yaml/compare/v2.2.1...v2.2.2) --- updated-dependencies: - dependency-name: yaml dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- website/package-lock.json | 14 +++++++------- website/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 19bb00a04..fb2aeec30 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -24,7 +24,7 @@ "react-player": "^2.11.2", "react-tooltip": "^4.2.21", "sass": "^1.60.0", - "yaml": "^2.2.1", + "yaml": "^2.2.2", "yamljs": "^0.3.0" }, "devDependencies": { @@ -12570,9 +12570,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yaml": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", - "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", "engines": { "node": ">= 14" } @@ -21584,9 +21584,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yaml": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", - "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==" }, "yamljs": { "version": "0.3.0", diff --git a/website/package.json b/website/package.json index 557cd2a26..65d95de2b 100644 --- a/website/package.json +++ b/website/package.json @@ -31,7 +31,7 @@ "react-player": "^2.11.2", "react-tooltip": "^4.2.21", "sass": "^1.60.0", - "yaml": "^2.2.1", + "yaml": "^2.2.2", "yamljs": "^0.3.0" }, "devDependencies": { From 5bf9f1ab3fc20f655290ca5946883a8dca2d7da5 Mon Sep 17 00:00:00 2001 From: candonov <25967713+candonov@users.noreply.github.com> Date: Fri, 8 Sep 2023 11:38:34 -0700 Subject: [PATCH 14/22] Updating steering.md Six months mark, removing candonov as a maintainer in favor of new maintainers. --- governance/steering.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/governance/steering.md b/governance/steering.md index 4b6a244ec..6ef4ee903 100644 --- a/governance/steering.md +++ b/governance/steering.md @@ -24,7 +24,7 @@ The working groups are led by chairs (6 month terms) and maintainers (6 month te | Infrastructure | [Niall Thomson](https://github.com/niallthomson) | | | Fundamentals | [Sai Vennam](https://github.com/svennam92) | [Bijith Nair](https://github.com/bijithnair), [Tolu Okuboyejo](https://github.com/oktab1), [Hemanth AVS](https://github.com/hemanth-avs) | | Autoscaling | [Sanjeev Ganjihal](https://github.com/sanjeevrg89) | | -| Automation | [Carlos Santana](https://github.com/csantanapr) | [Tsahi Duek](https://github.com/tsahiduek), [Christina Andonov](https://github.com/candonov), [SĂ©bastien Allamand](https://github.com/allamand) | +| Automation | [Carlos Santana](https://github.com/csantanapr) | [Tsahi Duek](https://github.com/tsahiduek), [SĂ©bastien Allamand](https://github.com/allamand) | | Machine Learning | [Masatoshi Hayashi](https://github.com/literalice) | [Benjamin Gardiner](https://github.com/bkgardiner) | | Networking | [Sheetal Joshi](https://github.com/sheetaljoshi) | [Umair Ishaq](https://github.com/umairishaq) | | Observability | [Nirmal Mehta](https://github.com/normalfaults) | [Steven David](https://github.com/StevenDavid) | From 0273d829cc45f01be475e1dda762422fbd93eba2 Mon Sep 17 00:00:00 2001 From: Luis Arcega Date: Thu, 17 Aug 2023 13:16:46 -0500 Subject: [PATCH 15/22] Enable IAM Principal AWS Access Console Automatically for C9 Instance user --- .../observability/base/.workshop/cleanup.sh | 23 ++++ .../base/.workshop/terraform/addon.tf | 118 ++++++++++++++++++ .../base/.workshop/terraform/env.sh | 12 ++ .../docs/observability/resource-view/index.md | 11 +- 4 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 manifests/modules/observability/base/.workshop/cleanup.sh create mode 100644 manifests/modules/observability/base/.workshop/terraform/addon.tf create mode 100755 manifests/modules/observability/base/.workshop/terraform/env.sh diff --git a/manifests/modules/observability/base/.workshop/cleanup.sh b/manifests/modules/observability/base/.workshop/cleanup.sh new file mode 100644 index 000000000..8d478b951 --- /dev/null +++ b/manifests/modules/observability/base/.workshop/cleanup.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +if [[ -v C9_USER ]]; then + + + echo 'Deleting ClusterRole config' + kubectl delete ClusterRoleBinding/eks-console-dashboard-full-access-binding --ignore-not-found=true > /dev/null + kubectl wait --for=delete ClusterRoleBinding/eks-console-dashboard-full-access-binding --timeout=60s > /dev/null + + kubectl delete ClusterRole/eks-console-dashboard-full-access-clusterrole --ignore-not-found=true > /dev/null + kubectl wait --for=delete ClusterRole/eks-console-dashboard-full-access-clusterrole --timeout=60s > /dev/null + + echo "Deleting IAM user/role from RBAC auth-config2" + ACCOUNTID=$(aws sts get-caller-identity | jq -r .Account) + + echo "Removing arn:aws:iam::**:role/${C9_USER} from RBAC" + eksctl delete iamidentitymapping --cluster ${EKS_CLUSTER_NAME} --region ${AWS_REGION} --arn arn:aws:iam::${ACCOUNTID}:role/${C9_USER} -d > /dev/null 2>&1 + + echo "Removing arn:aws:iam::**:user/${C9_USER} from RBAC" + eksctl delete iamidentitymapping --cluster ${EKS_CLUSTER_NAME} --region ${AWS_REGION} --arn arn:aws:iam::${ACCOUNTID}:user/${C9_USER} -d > /dev/null 2>&1 +else + echo "No env C9_USER.. Nothing to delete " +fi diff --git a/manifests/modules/observability/base/.workshop/terraform/addon.tf b/manifests/modules/observability/base/.workshop/terraform/addon.tf new file mode 100644 index 000000000..0138f47a1 --- /dev/null +++ b/manifests/modules/observability/base/.workshop/terraform/addon.tf @@ -0,0 +1,118 @@ +resource "kubernetes_cluster_role" "eks-console-dashboard-full-access-clusterrole" { + metadata { + name = "eks-console-dashboard-full-access-clusterrole" + } + + rule { + api_groups = [""] + resources = ["nodes", "namespaces", "pods", "configmaps", "endpoints", "events", "limitranges", "persistentvolumeclaims", "podtemplates", "replicationcontrollers", "resourcequotas", "secrets", "serviceaccounts", "services"] + verbs = ["get", "list", "watch"] + } + + rule { + api_groups = ["apps"] + resources = ["deployments", "daemonsets", "statefulsets", "replicasets"] + verbs = ["get", "list", "watch"] + } + + rule { + api_groups = ["batch"] + resources = ["jobs","cronjobs"] + verbs = ["get", "list", "watch"] + } + + rule { + api_groups = ["coordination.k8s.io"] + resources = ["leases"] + verbs = ["get", "list", "watch"] + } + + rule { + api_groups = ["discovery.k8s.io"] + resources = ["endpointslices"] + verbs = ["get", "list", "watch"] + } + + rule { + api_groups = ["events.k8s.io"] + resources = ["events"] + verbs = ["get", "list", "watch"] + } + + rule { + api_groups = ["extensions"] + resources = ["daemonsets", "deployments", "ingresses", "networkpolicies", "replicasets"] + verbs = ["get", "list", "watch"] + } + + rule { + api_groups = ["networking.k8s.io"] + resources = ["ingresses", "networkpolicies"] + verbs = ["get", "list", "watch"] + } + + rule { + api_groups = ["policy"] + resources = ["poddisruptionbudgets"] + verbs = ["get", "list", "watch"] + } + + rule { + api_groups = ["rbac.authorization.k8s.io"] + resources = ["rolebindings", "roles"] + verbs = ["get", "list", "watch"] + } + + rule { + api_groups = ["storage.k8s.io"] + resources = ["csistoragecapacities"] + verbs = ["get", "list", "watch"] + } +} + + +resource "kubernetes_cluster_role_binding" "eks-console-dashboard-full-access-binding" { + metadata { + name = "eks-console-dashboard-full-access-binding" + } + + role_ref { + api_group = "rbac.authorization.k8s.io" + kind = "ClusterRole" + name = "eks-console-dashboard-full-access-clusterrole" + } + + subject { + kind = "Group" + name = "eks-console-dashboard-full-access-group" + api_group = "rbac.authorization.k8s.io" + } + +} + +data "external" "env" { + program = ["${path.module}/env.sh"] +} + +resource "terraform_data" "console-iam-rbac-mapping" { +/* + triggers_replace = [ + # The provisioner is executed then the `id` of the EC2 instance changes + kubernetes_cluster_role_binding.eks-console-dashboard-full-access-binding + ] +*/ + provisioner "local-exec" { + command = <<-EOT + echo "Mapping RBAC Permissions" + + eksctl create iamidentitymapping --cluster ${local.addon_context.eks_cluster_id} --region ${data.aws_region.current.id} \ + --arn arn:aws:iam::${local.addon_context.aws_caller_identity_account_id}:user/${data.external.env.result["C9_USER"]} --username console-iam-user --group eks-console-dashboard-full-access-group \ + --no-duplicate-arns + + eksctl create iamidentitymapping --cluster ${local.addon_context.eks_cluster_id} --region ${data.aws_region.current.id} \ + --arn arn:aws:iam::${local.addon_context.aws_caller_identity_account_id}:role/${data.external.env.result["C9_USER"]} --username console-iam-role --group eks-console-dashboard-full-access-group \ + --no-duplicate-arns + + EOT + } +} diff --git a/manifests/modules/observability/base/.workshop/terraform/env.sh b/manifests/modules/observability/base/.workshop/terraform/env.sh new file mode 100755 index 000000000..ab09da874 --- /dev/null +++ b/manifests/modules/observability/base/.workshop/terraform/env.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +# env.sh + +# Change the contents of this output to get the environment variables +# of interest. The output must be valid JSON, with strings for both +# keys and values. +cat < Date: Tue, 12 Sep 2023 08:26:07 -0500 Subject: [PATCH 16/22] - Added support for varible C9_USER, injected by Cloud9 to the execution of the container - Added functionality to verify if C9_USER exist, it will grant access to the EKS via WS Console Access --- hack/run-tests.sh | 2 +- hack/shell.sh | 2 +- lab/bin/use-cluster | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/hack/run-tests.sh b/hack/run-tests.sh index 3d97b3e46..deba21509 100755 --- a/hack/run-tests.sh +++ b/hack/run-tests.sh @@ -54,5 +54,5 @@ echo "Running test suite..." $CONTAINER_CLI run $background_args \ -v $SCRIPT_DIR/../website/docs:/content \ -v $SCRIPT_DIR/../manifests:/manifests \ - -e 'EKS_CLUSTER_NAME' -e 'AWS_REGION' \ + -e 'EKS_CLUSTER_NAME' -e 'AWS_REGION' -e 'C9_USER' \ $aws_credential_args $container_image -g "{$module,$module/**}" --hook-timeout 1200 --timeout 1200 ${AWS_EKS_WORKSHOP_TEST_FLAGS} diff --git a/hack/shell.sh b/hack/shell.sh index e15a3a5a5..f677db7dd 100644 --- a/hack/shell.sh +++ b/hack/shell.sh @@ -44,5 +44,5 @@ echo "Starting shell in container..." $CONTAINER_CLI run --rm -it \ -v $SCRIPT_DIR/../manifests:/manifests \ - -e 'EKS_CLUSTER_NAME' -e 'AWS_REGION' \ + -e 'EKS_CLUSTER_NAME' -e 'AWS_REGION' -e 'C9_USER' \ $aws_credential_args $container_image $shell_command \ No newline at end of file diff --git a/lab/bin/use-cluster b/lab/bin/use-cluster index 2b2849e5d..e9d5a5893 100644 --- a/lab/bin/use-cluster +++ b/lab/bin/use-cluster @@ -35,4 +35,10 @@ EKS_IP_FAMILY=ipv4 set +a EOT -aws eks update-kubeconfig --name $cluster_name > /dev/null +aws eks update-kubeconfig --name $cluster_name > /dev/null 2>&1 + +if [[ -v C9_USER ]]; then + echo "Granting C9_USER access to the cluster via the AWS Console ${C9_USER}" + eksctl create iamidentitymapping --cluster $cluster_name --arn arn:aws:iam::${AWS_ACCOUNT_ID}:user/${C9_USER} --username console-iam-user --group system:masters --no-duplicate-arns -d > /dev/null 2>&1 + eksctl create iamidentitymapping --cluster $cluster_name --arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${C9_USER} --username console-iam-role --group system:masters --no-duplicate-arns -d > /dev/null 2>&1 +fi \ No newline at end of file From 551e8e78a58baf1c63d9906cf229ac747835bff5 Mon Sep 17 00:00:00 2001 From: candonov <25967713+candonov@users.noreply.github.com> Date: Wed, 13 Sep 2023 08:26:51 -0700 Subject: [PATCH 17/22] Adding Yuriy as maintainer --- governance/steering.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/governance/steering.md b/governance/steering.md index 6ef4ee903..125ecbe7d 100644 --- a/governance/steering.md +++ b/governance/steering.md @@ -24,7 +24,7 @@ The working groups are led by chairs (6 month terms) and maintainers (6 month te | Infrastructure | [Niall Thomson](https://github.com/niallthomson) | | | Fundamentals | [Sai Vennam](https://github.com/svennam92) | [Bijith Nair](https://github.com/bijithnair), [Tolu Okuboyejo](https://github.com/oktab1), [Hemanth AVS](https://github.com/hemanth-avs) | | Autoscaling | [Sanjeev Ganjihal](https://github.com/sanjeevrg89) | | -| Automation | [Carlos Santana](https://github.com/csantanapr) | [Tsahi Duek](https://github.com/tsahiduek), [SĂ©bastien Allamand](https://github.com/allamand) | +| Automation | [Carlos Santana](https://github.com/csantanapr) | [Tsahi Duek](https://github.com/tsahiduek), [SĂ©bastien Allamand](https://github.com/allamand), [Yuriy Bezsonov](https://github.com/ybezsonov) | | Machine Learning | [Masatoshi Hayashi](https://github.com/literalice) | [Benjamin Gardiner](https://github.com/bkgardiner) | | Networking | [Sheetal Joshi](https://github.com/sheetaljoshi) | [Umair Ishaq](https://github.com/umairishaq) | | Observability | [Nirmal Mehta](https://github.com/normalfaults) | [Steven David](https://github.com/StevenDavid) | From 72958826c0cf8481196afa585d4f2873935556bf Mon Sep 17 00:00:00 2001 From: Mathieu Bruneau Date: Thu, 14 Sep 2023 14:08:52 +0000 Subject: [PATCH 18/22] [Bug]: https://github.com/aws-samples/eks-workshop-v2/tree/stable/manifests/modules/observability/pod-logging/.workshop/terraform Fixes #666 --- website/docs/observability/logging/pod-logging/index.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/website/docs/observability/logging/pod-logging/index.md b/website/docs/observability/logging/pod-logging/index.md index 3d188b9f4..e15beac26 100644 --- a/website/docs/observability/logging/pod-logging/index.md +++ b/website/docs/observability/logging/pod-logging/index.md @@ -14,8 +14,7 @@ $ prepare-environment observability/logging/pods This will make the following changes to your lab environment: - Install AWS for Fluent Bit in the Amazon EKS cluster -You can view the Terraform that applies these changes [here](https://github.com/VAR::MANIFESTS_OWNER/VAR::MANIFESTS_REPOSITORY/tree/VAR::MANIFESTS_REF/manifests/modules/observability/pod-logging/.workshop/terraform). - +You can view the Terraform that applies these changes [here](https://github.com/VAR::MANIFESTS_OWNER/VAR::MANIFESTS_REPOSITORY/tree/VAR::MANIFESTS_REF/manifests/modules/observability/logging/pods/.workshop/terraform). ::: According to the [Twelve-Factor App manifesto](https://12factor.net/), which provides the gold standard for architecting modern applications, containerized applications should output their [logs to stdout and stderr](https://12factor.net/logs). This is also considered best practice in Kubernetes and cluster level log collection systems are built on this premise. From 9db604bafd7106ba7050a40c2571166b1cd57fea Mon Sep 17 00:00:00 2001 From: Luis Arcega Date: Thu, 21 Sep 2023 15:03:43 -0500 Subject: [PATCH 19/22] removing unnecessary resources --- hack/run-tests.sh | 2 +- hack/shell.sh | 2 +- .../observability/base/.workshop/cleanup.sh | 23 ---- .../base/.workshop/terraform/addon.tf | 118 ------------------ .../base/.workshop/terraform/env.sh | 12 -- 5 files changed, 2 insertions(+), 155 deletions(-) delete mode 100644 manifests/modules/observability/base/.workshop/cleanup.sh delete mode 100644 manifests/modules/observability/base/.workshop/terraform/addon.tf delete mode 100755 manifests/modules/observability/base/.workshop/terraform/env.sh diff --git a/hack/run-tests.sh b/hack/run-tests.sh index deba21509..3d97b3e46 100755 --- a/hack/run-tests.sh +++ b/hack/run-tests.sh @@ -54,5 +54,5 @@ echo "Running test suite..." $CONTAINER_CLI run $background_args \ -v $SCRIPT_DIR/../website/docs:/content \ -v $SCRIPT_DIR/../manifests:/manifests \ - -e 'EKS_CLUSTER_NAME' -e 'AWS_REGION' -e 'C9_USER' \ + -e 'EKS_CLUSTER_NAME' -e 'AWS_REGION' \ $aws_credential_args $container_image -g "{$module,$module/**}" --hook-timeout 1200 --timeout 1200 ${AWS_EKS_WORKSHOP_TEST_FLAGS} diff --git a/hack/shell.sh b/hack/shell.sh index f677db7dd..e15a3a5a5 100644 --- a/hack/shell.sh +++ b/hack/shell.sh @@ -44,5 +44,5 @@ echo "Starting shell in container..." $CONTAINER_CLI run --rm -it \ -v $SCRIPT_DIR/../manifests:/manifests \ - -e 'EKS_CLUSTER_NAME' -e 'AWS_REGION' -e 'C9_USER' \ + -e 'EKS_CLUSTER_NAME' -e 'AWS_REGION' \ $aws_credential_args $container_image $shell_command \ No newline at end of file diff --git a/manifests/modules/observability/base/.workshop/cleanup.sh b/manifests/modules/observability/base/.workshop/cleanup.sh deleted file mode 100644 index 8d478b951..000000000 --- a/manifests/modules/observability/base/.workshop/cleanup.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -if [[ -v C9_USER ]]; then - - - echo 'Deleting ClusterRole config' - kubectl delete ClusterRoleBinding/eks-console-dashboard-full-access-binding --ignore-not-found=true > /dev/null - kubectl wait --for=delete ClusterRoleBinding/eks-console-dashboard-full-access-binding --timeout=60s > /dev/null - - kubectl delete ClusterRole/eks-console-dashboard-full-access-clusterrole --ignore-not-found=true > /dev/null - kubectl wait --for=delete ClusterRole/eks-console-dashboard-full-access-clusterrole --timeout=60s > /dev/null - - echo "Deleting IAM user/role from RBAC auth-config2" - ACCOUNTID=$(aws sts get-caller-identity | jq -r .Account) - - echo "Removing arn:aws:iam::**:role/${C9_USER} from RBAC" - eksctl delete iamidentitymapping --cluster ${EKS_CLUSTER_NAME} --region ${AWS_REGION} --arn arn:aws:iam::${ACCOUNTID}:role/${C9_USER} -d > /dev/null 2>&1 - - echo "Removing arn:aws:iam::**:user/${C9_USER} from RBAC" - eksctl delete iamidentitymapping --cluster ${EKS_CLUSTER_NAME} --region ${AWS_REGION} --arn arn:aws:iam::${ACCOUNTID}:user/${C9_USER} -d > /dev/null 2>&1 -else - echo "No env C9_USER.. Nothing to delete " -fi diff --git a/manifests/modules/observability/base/.workshop/terraform/addon.tf b/manifests/modules/observability/base/.workshop/terraform/addon.tf deleted file mode 100644 index 0138f47a1..000000000 --- a/manifests/modules/observability/base/.workshop/terraform/addon.tf +++ /dev/null @@ -1,118 +0,0 @@ -resource "kubernetes_cluster_role" "eks-console-dashboard-full-access-clusterrole" { - metadata { - name = "eks-console-dashboard-full-access-clusterrole" - } - - rule { - api_groups = [""] - resources = ["nodes", "namespaces", "pods", "configmaps", "endpoints", "events", "limitranges", "persistentvolumeclaims", "podtemplates", "replicationcontrollers", "resourcequotas", "secrets", "serviceaccounts", "services"] - verbs = ["get", "list", "watch"] - } - - rule { - api_groups = ["apps"] - resources = ["deployments", "daemonsets", "statefulsets", "replicasets"] - verbs = ["get", "list", "watch"] - } - - rule { - api_groups = ["batch"] - resources = ["jobs","cronjobs"] - verbs = ["get", "list", "watch"] - } - - rule { - api_groups = ["coordination.k8s.io"] - resources = ["leases"] - verbs = ["get", "list", "watch"] - } - - rule { - api_groups = ["discovery.k8s.io"] - resources = ["endpointslices"] - verbs = ["get", "list", "watch"] - } - - rule { - api_groups = ["events.k8s.io"] - resources = ["events"] - verbs = ["get", "list", "watch"] - } - - rule { - api_groups = ["extensions"] - resources = ["daemonsets", "deployments", "ingresses", "networkpolicies", "replicasets"] - verbs = ["get", "list", "watch"] - } - - rule { - api_groups = ["networking.k8s.io"] - resources = ["ingresses", "networkpolicies"] - verbs = ["get", "list", "watch"] - } - - rule { - api_groups = ["policy"] - resources = ["poddisruptionbudgets"] - verbs = ["get", "list", "watch"] - } - - rule { - api_groups = ["rbac.authorization.k8s.io"] - resources = ["rolebindings", "roles"] - verbs = ["get", "list", "watch"] - } - - rule { - api_groups = ["storage.k8s.io"] - resources = ["csistoragecapacities"] - verbs = ["get", "list", "watch"] - } -} - - -resource "kubernetes_cluster_role_binding" "eks-console-dashboard-full-access-binding" { - metadata { - name = "eks-console-dashboard-full-access-binding" - } - - role_ref { - api_group = "rbac.authorization.k8s.io" - kind = "ClusterRole" - name = "eks-console-dashboard-full-access-clusterrole" - } - - subject { - kind = "Group" - name = "eks-console-dashboard-full-access-group" - api_group = "rbac.authorization.k8s.io" - } - -} - -data "external" "env" { - program = ["${path.module}/env.sh"] -} - -resource "terraform_data" "console-iam-rbac-mapping" { -/* - triggers_replace = [ - # The provisioner is executed then the `id` of the EC2 instance changes - kubernetes_cluster_role_binding.eks-console-dashboard-full-access-binding - ] -*/ - provisioner "local-exec" { - command = <<-EOT - echo "Mapping RBAC Permissions" - - eksctl create iamidentitymapping --cluster ${local.addon_context.eks_cluster_id} --region ${data.aws_region.current.id} \ - --arn arn:aws:iam::${local.addon_context.aws_caller_identity_account_id}:user/${data.external.env.result["C9_USER"]} --username console-iam-user --group eks-console-dashboard-full-access-group \ - --no-duplicate-arns - - eksctl create iamidentitymapping --cluster ${local.addon_context.eks_cluster_id} --region ${data.aws_region.current.id} \ - --arn arn:aws:iam::${local.addon_context.aws_caller_identity_account_id}:role/${data.external.env.result["C9_USER"]} --username console-iam-role --group eks-console-dashboard-full-access-group \ - --no-duplicate-arns - - EOT - } -} diff --git a/manifests/modules/observability/base/.workshop/terraform/env.sh b/manifests/modules/observability/base/.workshop/terraform/env.sh deleted file mode 100755 index ab09da874..000000000 --- a/manifests/modules/observability/base/.workshop/terraform/env.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# env.sh - -# Change the contents of this output to get the environment variables -# of interest. The output must be valid JSON, with strings for both -# keys and values. -cat < Date: Thu, 21 Sep 2023 15:03:43 -0500 Subject: [PATCH 20/22] removing unnecessary resources --- website/docs/observability/resource-view/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/observability/resource-view/index.md b/website/docs/observability/resource-view/index.md index 514d0d70e..e3004c42b 100644 --- a/website/docs/observability/resource-view/index.md +++ b/website/docs/observability/resource-view/index.md @@ -8,7 +8,7 @@ sidebar_custom_props: {"module": true} Prepare your environment for this section: ```bash timeout=300 wait=30 -$ prepare-environment observability/base +$ prepare-environment ``` This will make the following changes to your lab environment: From dcd69c9df194f565b163b9d4a9ada32fbd52bb82 Mon Sep 17 00:00:00 2001 From: Niall Thomson Date: Mon, 25 Sep 2023 20:26:10 +0000 Subject: [PATCH 21/22] Removed unnecessary statements in resource view intro --- website/docs/observability/resource-view/index.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/website/docs/observability/resource-view/index.md b/website/docs/observability/resource-view/index.md index e3004c42b..ec9d20109 100644 --- a/website/docs/observability/resource-view/index.md +++ b/website/docs/observability/resource-view/index.md @@ -11,11 +11,6 @@ Prepare your environment for this section: $ prepare-environment ``` -This will make the following changes to your lab environment: -- Creates an additional kubernetes ClusterRole with the name "eks-console-dashboard-full-access-clusterrole" -- Creates a Kubernetes ClusterRoleBinding with the name "eks-console-dashboard-full-access-binding" -- Mapps the Cloud9 IAM User/ Role to the ClusterRoleBinding ad RBAC group, to grant access the AWS console to view Kubernetes resources. - You can view the Terraform that applies these changes [here](https://github.com/VAR::MANIFESTS_OWNER/VAR::MANIFESTS_REPOSITORY/tree/VAR::MANIFESTS_REF/manifests/modules/observability/base/.workshop/terraform). ::: From 64ef398856f476f9518a7a4daa768e4133b5b427 Mon Sep 17 00:00:00 2001 From: Niall Thomson Date: Mon, 25 Sep 2023 21:45:23 +0000 Subject: [PATCH 22/22] Minor changes to use-cluster setting C9_USER --- lab/bin/use-cluster | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lab/bin/use-cluster b/lab/bin/use-cluster index e9d5a5893..f2cceff15 100644 --- a/lab/bin/use-cluster +++ b/lab/bin/use-cluster @@ -38,7 +38,7 @@ EOT aws eks update-kubeconfig --name $cluster_name > /dev/null 2>&1 if [[ -v C9_USER ]]; then - echo "Granting C9_USER access to the cluster via the AWS Console ${C9_USER}" - eksctl create iamidentitymapping --cluster $cluster_name --arn arn:aws:iam::${AWS_ACCOUNT_ID}:user/${C9_USER} --username console-iam-user --group system:masters --no-duplicate-arns -d > /dev/null 2>&1 - eksctl create iamidentitymapping --cluster $cluster_name --arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${C9_USER} --username console-iam-role --group system:masters --no-duplicate-arns -d > /dev/null 2>&1 + echo "Granting C9_USER access to the cluster via the AWS Console ${C9_USER}" + eksctl create iamidentitymapping --cluster $cluster_name --arn arn:aws:iam::${AWS_ACCOUNT_ID}:user/${C9_USER} --username console-iam-user --group system:masters > /dev/null + eksctl create iamidentitymapping --cluster $cluster_name --arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${C9_USER} --username console-iam-role --group system:masters > /dev/null fi \ No newline at end of file