|Saturday||10/27/2018 at 01:00PM|
Ask all your questions on Piazza. Assign assignment3 tag to your posts.
To keep your AWS credit usage to minimum, please terminate your k8s stack when you are done working on it.
- Setup k8s cluster using kops with
1master Node (recommended instance size - t2.micro) and
3worker node (recommended instance size - t2.micro). If
t2.microinstance is too small, you can increase the size of the instance.
Resource Limits for Redis Server & Sentinel Containers¶
- CPU: 100m or 0.1
- Memory: 32MB (start with 32 MB and increase as needed to run the container. This will allow us to run the assignment with smallest possible EC2 instance.)
Develop a simple RESTful webservice in programming language of your choice. You may use open source libraries and frameworks in your application. Application should run in a container on k8s.
You will implement following:
- Web app endpoint
/. Response should be JSON listing all available environment variables to the container.
- Webapp will connect to REDIS cluster setup in previous assignment using service discovery.
- Webapp container must implement readiness probe. Application should be marked “ready” once it has successfully established connection with REDIS cluster.
- REDIS cluster must be secured with password. Password must be stored as Secret in your k8s cluster.
service namemust be passwed to web application using ConfigMap.
- Web application will count how many times API request has been made from same IP address. Store data in REDIS ad key/value with client ip as the key and request count as value.
- Requests to web application should be load balanced.
Releases created after due date will be considered late.
- All work for this assignment must be done on assignment3 feature branch and merged to master when you are dev complete.
- GitHub release must be created from the master branch.
- All team member’s branches must be in-sync. Each team member must create a release in their repository.
- All assignments will be delivered using GitHub releases feature. See GitHub documentation for details on how to create a release.
Following guidelines are for information only and are subject to change at my discretion.
- Demonstrate that your deliverables have met assignment objectives.