From 732fe6637f7714f476dcbaf13d4a7a353c290b00 Mon Sep 17 00:00:00 2001 From: Shivansh Singh Date: Tue, 26 Nov 2019 19:29:01 -0800 Subject: [PATCH 1/3] Minor updates to lab1; add missing screenshot --- content/000_pre/00_page1.md | 25 ++++++++---------- content/000_pre/_index.md | 6 +---- content/050_concepts/00_page1.md | 2 +- content/050_concepts/00_page2.md | 4 +-- content/100_lab1/children1/10_page3.md | 2 +- content/100_lab1/children1/10_page4.md | 2 +- content/100_lab1/children1/10_page5.md | 6 ++--- content/100_lab1/children1/_index.md | 1 - content/100_lab1/children2/_index.md | 35 ++++++++++--------------- static/images/click-ide.png | Bin 0 -> 74214 bytes 10 files changed, 33 insertions(+), 50 deletions(-) create mode 100644 static/images/click-ide.png diff --git a/content/000_pre/00_page1.md b/content/000_pre/00_page1.md index 119817d..ee023f4 100644 --- a/content/000_pre/00_page1.md +++ b/content/000_pre/00_page1.md @@ -4,32 +4,29 @@ chapter = false weight = 10 +++ -You will use AWS Appstream to connect to your lab environment. You will find the Appstream URL in your team dashboard. +Once you are logged in, you will see the event Engine Team dashboard. For most of this lab you will be +using a preconfigured IDE streamed to your browser using AppStream. To launch the development environment, click on the **IDE** link in the **Modules** section of the dashboard. + +![ide-button](/images/click-ide.png) -@TODO Screenshot ## Lab information The AWS Appstream session that you are using for this hands on lab has the following programs pre-installed: -- Python3 (taskcat is Python program) +- Python3 (taskcat is a Python program) - taskcat (pip install taskcat) -- Vscode with plugins pre-installed +- Vscode with following plugins pre-installed - taskcat config validation - cfn-lint validation - CloudFormation template auto-complete and doc links from the cfn-resource-spec -## Copy paste +#### Copy paste -Copy and paste should work out of the box on all browsers, in some browsers you may get -a dialog box requesting clipboard access which must be allowed to enable copy-paste. +When using IDE, copy and paste should work out of the box on all browsers, however, in some browsers you may get a dialog box requesting clipboard access which must be allowed to enable copy-paste. -The AppStream also provides a tool in the top left of the window that enables placing -data into the AppStream session's clipboard. This is recommended for pasting large -blocks of text. +The AppStream also provides a tool in the top left of the window that enables placing data into the AppStream session's clipboard. This is recommended for pasting large blocks of text. -### MAC OS +#### MAC OS -On Mac OS the function of the Command key is swapped with that of the Control key, so -to copy/paste in the appstream environment the shortcuts are control-c and control-v -respectively. +On Mac OS the function of the Command key is swapped with that of the Control key, so to copy/paste in the appstream environment the shortcuts are control-c and control-v respectively. diff --git a/content/000_pre/_index.md b/content/000_pre/_index.md index 0725e69..84027e9 100755 --- a/content/000_pre/_index.md +++ b/content/000_pre/_index.md @@ -14,8 +14,4 @@ To login to that AWS Account, you will be given a unique **hash**, something as To login - open a web browser, navigate to https://dashboard.eventengine.run/ and enter the **hash** to proceed. -Once logged in you will see the event Engine dashboard, for most of this lab we will be -using a preconfigured IDE streamed to your browser using AppStream. To launch the -environment, click on the **IDE** link in the **Modules** section of the dashboard. - -![fig0.1](images/fig0.1.png) +![fig0.1](/images/fig0.1.png) diff --git a/content/050_concepts/00_page1.md b/content/050_concepts/00_page1.md index 6d7e48d..711315a 100644 --- a/content/050_concepts/00_page1.md +++ b/content/050_concepts/00_page1.md @@ -5,7 +5,7 @@ weight = 60 +++ -Taskcat uses two config files: _**Global config**_ and _**Project config**_ +Taskcat uses two config files: _**Project config**_ and _**Global config**_. ## Project Config This config file provides project-specific configurations. diff --git a/content/050_concepts/00_page2.md b/content/050_concepts/00_page2.md index 00fad07..ef9fd87 100644 --- a/content/050_concepts/00_page2.md +++ b/content/050_concepts/00_page2.md @@ -8,9 +8,9 @@ weight = 70 Parameter Overrides were added to the taskcat to solve a couple of common problems. First, many templates share common parameters that are unique to an AWS account, like a KeyPair name -or an S3 Bucket, overrides provided a way to store those centrally for all your projects. +or an S3 Bucket; Overrides provided a way to store those centrally for all your projects. Second, we didn't want to add sensitive data (usernames, passwords, tokens) to a git -repository. The idea was to store sensitive/unique data outside of a git repository, but still +repository. The idea is to store sensitive/unique data outside of a git repository, but still execute a test using this data. To that end, *any parameter defined in the global config will take precedence over the same parameter in a project-level config*. diff --git a/content/100_lab1/children1/10_page3.md b/content/100_lab1/children1/10_page3.md index 7a66dd2..69f1a46 100644 --- a/content/100_lab1/children1/10_page3.md +++ b/content/100_lab1/children1/10_page3.md @@ -8,7 +8,7 @@ First, you will create a project section in your project configuration file. ## Add a project section -To add a project section, copy and paste the following in **.taskcat.yml** file. +To add a project section, copy and paste the following in your **.taskcat.yml** file. ```yaml project: diff --git a/content/100_lab1/children1/10_page4.md b/content/100_lab1/children1/10_page4.md index eb668a5..ef21601 100644 --- a/content/100_lab1/children1/10_page4.md +++ b/content/100_lab1/children1/10_page4.md @@ -19,7 +19,7 @@ project: name: cfn-project tests: mytest: - template: templates/lab1.template.yamls + template: templates/lab1.template.yaml ``` diff --git a/content/100_lab1/children1/10_page5.md b/content/100_lab1/children1/10_page5.md index 7c7274e..b08c6e1 100644 --- a/content/100_lab1/children1/10_page5.md +++ b/content/100_lab1/children1/10_page5.md @@ -8,11 +8,9 @@ Now, you will define in which AWS regions you want to test your cloudformation t ## Add regions to your test -The **regions:** key is optional for the tests. By default **regions** inherit from the global -configuration (We will conver global configs later in this lab) +The **regions:** key is optional for the tests. By default **regions** inherit from the global configuration (We will conver global configs later in this lab). -The regions key takes a _list_ of regions. When defined in a test, taskcat will -limit test to those regions +The regions key takes a _list_ of regions. When defined in a test, taskcat will limit test to those regions. For now, specifiy only one region **us-east-1**. diff --git a/content/100_lab1/children1/_index.md b/content/100_lab1/children1/_index.md index b37d134..e0fb486 100644 --- a/content/100_lab1/children1/_index.md +++ b/content/100_lab1/children1/_index.md @@ -13,7 +13,6 @@ From the vscode file browser, navigate to **lab1/cfn-project**, and open **.tas The file will be empty, let's start by adding the sections needed for a basic configuration. -@TODO Screen shoot need updated to show appstream ![fig1.1](/images/fig_lab1.1.png) diff --git a/content/100_lab1/children2/_index.md b/content/100_lab1/children2/_index.md index b01a7ca..bc31e23 100644 --- a/content/100_lab1/children2/_index.md +++ b/content/100_lab1/children2/_index.md @@ -11,6 +11,7 @@ weight = 101 From your vscode terminal change directory to your project root for **lab1** __(lab1/cfn-project)__ Under cfn-project you will see the following files + ``` cfn-project ├── lambda_functions/source/GenRandom/ @@ -18,23 +19,7 @@ cfn-project └── .taskcat.yml ``` -The provided template for this lab uses a Lambda backed custom resource. - -**source/GenRandom** contains the lambda source. - -When lambda source is detected taskcat will package the lambda zip file and then save it -to lambda_functions/packages/. This zip file is referenced in our lambda function. - -{{% notice tip %}} -The default source and package folders can be changed by setting values in your -[project_config](https://aws-quickstart.github.io/taskcat/#project-config) file. -{{% /notice %}} - -taskcat is able to build dependencies for your lambda so that you don't need to -check them into source control. This can be done by providing a Dockerfile that -contains the in the build steps in source folder. Or, for python functions, if a -requirements.txt file is found, taskcat will package the dependencies defined in it -into your zip. +The provided template for this lab (**lab1.template.yaml**) uses a Lambda backed custom resource, as shown below. **source/GenRandom** contains the lambda source code. ``` GenRandomLambda: @@ -50,10 +35,18 @@ into your zip. S3Key: !Sub '${S3KeyPrefix}lambda_functions/packages/GenRandom/lambda.zip' ``` -Experiment a bit with the template by adding another resource. You will notice that the -IDE provides autocomplete (Ctrl+Space to get a list of available properties). Also every -time the file is saved, validation is done and any errors detected in the template are -displayed inline and in the **PROBLEMS** tab to the left of the terminal. +When lambda source is detected, taskcat will package the lambda function into a zip file and then save it +to lambda_functions/packages/. This zip file is referenced in our lambda function. *HINT: Check S3Key in the lambda function resource above.* + +{{% notice tip %}} +The default source and package folders can be changed by setting values in your +[project_config](https://aws-quickstart.github.io/taskcat/#project-config) file. +{{% /notice %}} + +taskcat is able to build dependencies for your lambda so that you don't need to +check them into source control. This can be done by providing a Dockerfile that +contains the in the build steps in source folder. Or, for python functions, if a +requirements.txt file is found, taskcat will package the dependencies defined in it, into your zip. {{% notice tip %}} If you want to run packaging step on its own you can run `taskcat package` diff --git a/static/images/click-ide.png b/static/images/click-ide.png new file mode 100644 index 0000000000000000000000000000000000000000..cd2550f1f40afc8f9624c206d28db0ab1614fde4 GIT binary patch literal 74214 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

gps1(Fw= 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 literal 0 HcmV?d00001 From 451c358a130b764e91e9f66fd9a22fab17cb1c1e Mon Sep 17 00:00:00 2001 From: Shivansh Singh Date: Tue, 26 Nov 2019 19:50:22 -0800 Subject: [PATCH 2/3] minor fixes to lab2 content --- content/200_lab2/20_page1.md | 36 ++++++++++++++++++------------------ content/200_lab2/20_page2.md | 4 ++-- content/200_lab2/20_page3.md | 10 ++++------ content/200_lab2/_index.md | 4 ++-- 4 files changed, 26 insertions(+), 28 deletions(-) diff --git a/content/200_lab2/20_page1.md b/content/200_lab2/20_page1.md index 03f7875..3f78e57 100644 --- a/content/200_lab2/20_page1.md +++ b/content/200_lab2/20_page1.md @@ -6,32 +6,32 @@ weight = 210 ## Add Psuedo-Parameters to your project-level taskcat config -* Edit your `cfn_project/.taskcat.yml` parameters to include psuedo-parameters. -[Please see the Taskcat Concepts section for more details on psuedo-parameters](../00_concepts.html) +Edit your `cfn_project/.taskcat.yml` parameters to include psuedo-parameters. +Please see the [Getting Started](/050_concepts/00_page2.html#psuedo-parameters) section for more details on psuedo-parameters. -* Example project config file: +Following code sample shows an example project config file: ```yaml - project: - name: cfn-project - tests: - mytest: - template: templates/lab2.template.yaml - regions: - - us-east-1 - parameters: - S3BucketName: '$[taskcat_autobucket]' - S3KeyPrefix: 'cfn-project/' - LicenseToken: 'value-to-be-overriden-by-global-config' - AvailabilityZones: '$[taskcat_genaz_2]' +project: + name: cfn-project +tests: + mytest: + template: templates/lab2.template.yaml + regions: + - us-east-1 + parameters: + S3BucketName: '$[taskcat_autobucket]' + S3KeyPrefix: 'cfn-project/' + LicenseToken: 'value-to-be-overriden-by-global-config' + AvailabilityZones: '$[taskcat_genaz_2]' ``` ## Add Psuedo-parameters to your global taskcat config. -* Edit your parameters to include psuedo-parameters. +Edit your parameters to include psuedo-parameters. -* Note: For the purposes of this lab, we've created a shortcut command to access to the -file, in the IDE terminal type: +**Note:** For the purposes of this lab, we've created a shortcut command to provide access to the +global config file. Running the following command from your IDE terminal, to open it in the editor. ```bash open-taskcat-global-config diff --git a/content/200_lab2/20_page2.md b/content/200_lab2/20_page2.md index 564deb2..4748bca 100644 --- a/content/200_lab2/20_page2.md +++ b/content/200_lab2/20_page2.md @@ -8,11 +8,11 @@ weight = 220 ## Start a test -From the **cfn-project** dir run you taskcat test +From the **lab2/cfn-project** dir run you taskcat test ``` taskcat test run ``` -Estimated runtime (5 mins) +Estimated test run time (5 mins) ![fig2.2](/images/taskcat_execution2.gif) diff --git a/content/200_lab2/20_page3.md b/content/200_lab2/20_page3.md index e693fe2..9ab65c9 100644 --- a/content/200_lab2/20_page3.md +++ b/content/200_lab2/20_page3.md @@ -4,11 +4,10 @@ chapter = false weight = 230 +++ - ## Login to the AWS Console -1. from the [Event Engine dashboard](https://dashboard.eventengine.run/) click login to AWS console -2. navigate to the CloudFormation console in us-east-1 (N. Virginia) +1. From the [Event Engine dashboard](https://dashboard.eventengine.run/) click login to AWS console +2. Navigate to the CloudFormation console in us-east-1 (N. Virginia) 3. Change the filter to view **Deleted** stacks 3. Select the top stack ( they are ordered by creation date) 4. Click on the **"Outputs"** tab @@ -16,9 +15,8 @@ weight = 230 Notice that the values for the **LicenseToken** parameter has been replaced with the value specified in the global override. -Notice that the value for **AvailablityZones** has been replaced with 2 az names from the -us-east-1 region - +Notice that the value for **AvailablityZones** has been replaced with 2 AZ names from the +us-east-1 region. ![fig1.4](/images/stack_outputs.png) diff --git a/content/200_lab2/_index.md b/content/200_lab2/_index.md index c324f0f..d63bcd4 100644 --- a/content/200_lab2/_index.md +++ b/content/200_lab2/_index.md @@ -8,9 +8,9 @@ weight = 200 Using the provided cloudformation template build a taskcat config that uses **psuedo-parameters** We will use override to inject a `LicenseToken` and dynamically inject `AvailiblityZone` -values during testing +values during testing. -- Use taskcat overrides pass inputs into the stack that you do not want in the +- **Overrides** are used to pass inputs into the stack that you do not want in the project_root/gitrepo _(secrets like `LicenseKeys` or `APITokens`, etc. Or account specific values like EC2 KeyPair names, or Rooute53 domain names)_ From 40f0507767cc5a3643cfd86b8104d43a07f5080b Mon Sep 17 00:00:00 2001 From: Shivansh Singh Date: Tue, 26 Nov 2019 19:54:49 -0800 Subject: [PATCH 3/3] minor fixes to lab3 --- content/300_lab3/_index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/300_lab3/_index.md b/content/300_lab3/_index.md index 6f50b7c..640689c 100644 --- a/content/300_lab3/_index.md +++ b/content/300_lab3/_index.md @@ -6,7 +6,7 @@ weight = 300 ### Testing in multiple regions -An important part of building high-confidence CloudFormation is multi-region testing. +An important part of building high-confidence CloudFormation is testing in multiple regions. In this lab, we will see how **taskcat** can help uncover common issues when deploying in different regions. @@ -16,9 +16,9 @@ To test this template we will add 2 more regions to the test definition. - After running the test, we will see that the **us-east-1** region deploys properly, while we _receive failures in other regions._ -Looking at the logs we can see that lambda source is not accessible from the other regions. +Looking at the logs you will see that lambda source is not accessible from the other regions. -- We will then modify the our template to include a child stack. This child stack will pre-stage the Lambda source in each region. +- We will then modify our template to include a child stack. This child stack will pre-stage the Lambda source in each region. - Finally, we'll kick off our **taskcat** test again to validate the fix we implemented!