Skip to content

Instantly share code, notes, and snippets.

@yjwong
Last active January 5, 2022 11:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save yjwong/4a4d5518a689c0cdb0a9db9d024e371a to your computer and use it in GitHub Desktop.
Save yjwong/4a4d5518a689c0cdb0a9db9d024e371a to your computer and use it in GitHub Desktop.

Cold Storage Group Ordering

Cold Storage is a popular supermarket chain in Singapore. As part of an employee benefit, Glints employees located in Singapore are given a fixed weekly office budget to purchase groceries to fill the office pantry. Unfortunately, the Cold Storage website does not have a group ordering function, which makes collating the list of items to buy a hassle.

To solve this problem, you proposed creating a service that everyone in the office can connect to, that displays the Cold Storage website in a headless browser. This simulates group ordering functionality. This service contains the following components:

  • A headless browser, such as Google Chrome
  • A VNC server, such as TigerVNC that allows for remote desktop functionality
  • noVNC, a JavaScript-based VNC client that allows easy access through a URL

The Task

The task is to containerize and deploy the above components onto a Kubernetes cluster. You should ensure that the deployment is as declarative as possible, ensuring that all files required to re-create the deployment are included.

For the purpose of this assessment, there is no need to use a publicly hosted Kubernetes cluster; you may use Minikube to quickly spin up a local Kubernetes cluster. If you require a Docker Registry to host Docker images, you may use the public Docker Hub.

Roughly speaking, these are the sub-tasks:

  1. Write one or more Dockerfiles for the 3 services above.
  2. Build the appropriate images and push them to a Docker Registry.
  3. Write one or more Kubernetes YAML files to deploy the images to the Kubernetes cluster.

At the end, employees should be able to access a the Cold Storage website through their browser, mirrored over VNC.

Submission

Include a repository that includes the Dockerfiles have you written, as well as any relevant Kubernetes YAML files. Take care not to include any secrets.

Provide documentation on how to deploy the project to a Kubernetes cluster. You may assume that the Kubernetes cluster has an active ingress controller and role-based access control (RBAC) enabled.

Bonus

This is optional, and serves as additional proof points. We will consider it complete even without this functionality.

Determine metrics that would reflect the reliability of this service.

Implement monitoring and alerting in case the service stops working. You may use any means of monitoring that you can think of.

@waqar882
Copy link

waqar882 commented Dec 7, 2021

hi sir i have started this assignment from this morning ,i need some assistance to complete this task .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment