Please complete one of the following tasks. Each task should take you no more than 2 hours.
Your task is to hack the bank.
- Visit Bobby Tables Bank. This is a fake insecure bank
- Register your account with a username and password
- Finish with your bank balance above €100
- Document how you increased you balance
- Document how you would secure this bank in the future
Bonus
- Transfer all the funds from all the accounts into your own
- Document how you were able to steal all of the money in the bank
- Provide any code that you required to accomplish this task
Your task is to provide a git
repository that will contain the code to build a Kubernetes cluster on Google Kubernetes Engine with the following specifications:
- The cluster will have 7 to 12 worker nodes
- The workers will have:
- 2 non-preemptible full nodes of type
n1-standard-2
(no autoscaling) - 3 preemptible nodes of type
n1-standard-2
(can autoscale to 6) - 2 preemptible nodes of type
n1-standard-4
(can autoscale to 4)
- 2 non-preemptible full nodes of type
- The cluster will have 1 admin user (
admin
) and 20 regular users (user-1
,user-2
, etc.) - The cluster will have 23 namespaces
default
backend
frontend
user-1
user-2
- etc.
- The admin user will have
read
andwrite
permissions for all the namespaces user-1
will haveread
permissions for the cluster andwrite
permissions for theuser-1
namespace- Similarly,
user-2
will haveread
access to the cluster andwrite
access to theuser-2
namespace - The cluster will have 1 secret that is synchronized across all namespaces
dockerhub-credentials
that provides image pull secrets to the cluster - The cluster should also have credentials to a service account that has the following abilities:
- create databases on CloudSQL
- encrypt/decrypt secrets with Google KMS
- create and destroy buckets on Google Cloud Storage
- The cluster should have an ingress controller that will create DNS records on either Google DNS or Cloudflare automatically
- The cluster should take care of SSL termination (through LetsEncrypt or other means)
- Create a
README.md
that provides instructions on how to use your repository
You may choose any freely available tools that you feel will be helpful in the tasks above. If you choose to do the above task on AWS instead, please translate the requirements to AWS equivalents
- You must provide your code in full so we can replicate your cluster
- You must use either Google Cloud or AWS to build the above cluster (you do not need to provide access to the cluster, only to the code)
- Your code is clean and readable
- You must document any steps that are not automated in the
README.md
Your task is to provide a git
repository that will contain the code to build a Kubernetes Operator that does the following:
- Tweets or sends a slack message or somehow tells the world
hello world from $name
when a custom resource with$name
specified in thespec
is created - Tweets or sends a slack message or somehow tells the world
things have changed, $name
when the above custom resource is modified - Tweets or sends a slack message or somehow tells the world
goodbye world from $name
when the above custom resource is deleted
You may use any language and/or toolset to achieve the above as long as they are freely available.
- Your code is clean and readable
- You have a
README.md
that explains how to use your operator - You provide deployment instructions (ideally manifests or a Helm chart to deploy your operator to a cluster)
- Provide some rationale for your design choices (I used
$language
because..., I used$library
because..., etc. )