DevOps Challenges
Fix a real thing, open a pull request, and CI grades it. You get a ticket, not a tutorial.
- 1
Fork and pick a challenge
Each challenge is a folder in the challenges repository with a brief and a broken or unfinished starter.
- 2
Fix it your way
There are no steps to follow. The brief says what has to work and which files you may change.
- 3
Open a pull request
A GitHub Actions workflow grades it and comments a result for each check, usually within a few minutes.
- 4
Pass every check
Push more commits until everything passes. The PR gets the passed label and is closed. It is never merged.
Shrink the Image
A tiny Flask app ships in a container image of more than 1 GB that runs as root. Rewrite the Dockerfile so the image is under 200 MB, runs as a normal user and still works.
Script It: Summarize an Access Log
Finish a half-written Bash script that turns an nginx access log into a short report: requests, status classes, top clients and top paths. ShellCheck has to be clean and the edge cases right.
Fix the Deployment
An inventory API never comes up on Kubernetes. Find and fix the bugs in its Deployment, Service and ConfigMap until the rollout finishes and the Service answers.
The tests and the grader always come from the repository's main branch, never from your pull request. Only the challenge's solution files are copied out of your PR, your code runs in a container or a throwaway kind cluster, and some inputs are random at grading time, so the checks do not compare against fixed answers you could copy.
Have a broken thing you fixed at work that would make a good challenge? Open a proposal on GitHub.
Read CONTRIBUTING.md