Skip to content

Assignment #02

Due Date

Section Due Date
Monday 02/11/2019 at 06:00PM

Getting Help

Info

Ask all your questions on Piazza. Assign assignment2 tag to your posts.

Assignment Weightage

Individual assignment weightage on course grade of this assignment is 5%.

AWS Expenses

Warning

To keep your AWS credit usage to minimum, please stop terminate your k8s stack when you are done working on it.

Objectives

Create AWS ECR Repository for Webapp

Create a ECR repository for your webapp. This can be done via AWS CLI or manually thru console.

Modify Webapp from CSYE 6225

You can start with final version of your webapp from CSYE 6225 and modify it so that it is a stateless application. Disable any API endpoint that requires authentication, database access, AWS S3, local file system access, etc. If you do not have unauthenticated endpoint, implement an api endpoint /ping that responds with pong.

Dockerfile

Create a Dockerfile to build docker image for your web application.

Kubernetes Pod Configuration

Create a Kubernetes pod configuration file that can be used to deploy your application on Kubernetes cluster.

Ansbile Roles & Playbook

  • Create a new build_image role and push_image role to build docker image from Dockerfile for your web app and push the newly built image to your AWS ECR repository.
  • Create a playbook that uses the build_image and push_image roles.
  • Create a playbook to deploy your web application using kubectl and the pod config file.
  • Create a new dashboard role that is called in setup kubernetes playbook after cluster validation is successful.

Submission

Danger

Assignment will be considered late if commits are made to master and feature branch after due date.

  1. All work for this assignment must be done on assignment2 feature branch and merged to master when you are dev complete.
  2. All team member’s feature and master branches must be in-sync.

Grading Guidelines

Warning

Following guidelines are for information only. They are subject to change at the discretion of the instructor and TA.

  • Verify webapp can be packaged into docker image using ansible playbook.
  • Push docker image to AWS ECR
  • Run lastest image of the app on K8S cluster using ansible playbook.
  • Verify webapp endpoint access using kubectl port forward.