This is a to-do list web application with the basic features of most web apps, i.e., accounts/login, API, and interactive UI. To do this task, you will need:
Try it out by installing the requirements (the following commands work only with Python 3.8 and higher, due to Django 4):
pip install -r requirements.txt
Create a database schema:
python manage.py migrate
And then start the server (default is http://localhost:8000):
python manage.py runserver
You can now browse the API or start on the landing page.
Create a Kubernetes manifest for a pod which will contain a ToDo app container:
- Fork this repository.
- Use
kind
to spin up a cluster from acluster.yml
configuration file. - Inspect Nodes for Labels and Taints
- Taint nodes labeled with
app=mysql
withapp=mysql:NoSchedule
- StateFulSet requirements:
- Modify StatefulSet so it can be scheduled on the tainted worker nodes
- Add Pod Anti-Affinity rule so MySQL could not be scheduled on the same node
- Add Node Affinity rule so mysql scheduled on a node with the
app=mysql
label
- Deployment requirements:
- Add Node Affinity Rules to schedule deployment on an
app=todoapp
labeled nodes (UsePreferedDuringSchedulingIgnoredDuringExecution
) - Add Pod Anti-Affinity rule so deployment could not be scheduled on the same node
- Add Node Affinity Rules to schedule deployment on an
bootstrap.sh
should contain all the commands to deploy all the required resources in the cluster- Create the
INSTRUCTION.md
file with detailed instructions on how to validate the changes - Create PR with your changes and attach it for validation on a platform.