DigitalOcean Kubernetes Challenge

DigitalOcean Kubernetes Challenge

Whether you’re new to Kubernetes, or you have been running production clusters for years, this challenge will give you an opportunity to level-up your Kubernetes skill set before the end of the year.

Join the DigitalOcean Kubernetes Challenge

Details

Join the Challenge

We are thrilled to announce the DigitalOcean Kubernetes Challenge! 

Whether you’re new to Kubernetes or have been running production clusters for years, DigitalOcean’s Kubernetes Challenge will give you an opportunity to level up your Kubernetes skill set before the end of the year. 

Join the challenge to sharpen your devops skills, learn more about Cloud Native Computing Foundation (CNCF) projects, win prizes, and have fun along the way!

How to Participate

  1. Pick one challenge from the list below
  2. Create a GitHub or GitLab repo for your project
  3. Fill out the code challenge form to get DigitalOcean credits for your project
  4. Join the #kubernetes-challenge channel in the DigitalOcean Deploy Discord
  5. Complete your challenge
  6. Write about what you’ve built and share it on a blog or in your project readme
  7. Make a pull request against the Kubernetes Challenge Github Repo with information about your project 
  8. Let us know you’ve completed your challenge by filling out this form 
  9. Upon successfully completing these steps, participants will receive the following prizes (each of which expire after one year after the date of receipt):

    - $150 to donate to your project of choice in Open Collective
    - $100 gift card to be used at the DigitalOcean Swag Store
    - $50 gift card to be used at the CNCF Swag Store

Join the Kubernetes Challenge!

Success Criteria

How to Succeed

  • The project must be created during the dates of the challenge, November 16 - December 31, 2021. The submission period ends at 11:59 pm PST/ 8 AM UTC on December 31, 2021.
  • Challenge participants must be at least 18+ years old.
  • Participants must submit projects individually.
  • The project must be deployed in a DigitalOcean Managed Kubernetes cluster. 
  • A readme and any code for the project must be stored in a publicly accessible GitHub or GitLab repository. Participants must use one of the following permissive licenses for their code: MIT, Apache, BSD-2, BSD-3, or Commons Clause.
  • Once the project is complete, participants must complete a write up about the project on a blog or in the readme. If the project deploys an application in a Kubernetes cluster, the blog/readme must include a link to access the app. If the project builds a system within Kubernetes that is not publicly accessible, the blog/readme must include a video walk through or series of screenshots showing the project.
  • The participant must submit a PR against the DigitalOcean Kubernetes Challenge repo with a file that includes the name of their project, a link to their GitHub or GitLab repository, a link to their project writeup, and their contact information.

Join the Kubernetes Challenge!

Challenges

Choose your Challenge

New to Kubernetes? Try one of these challenges. You’ll get $60 in DigitalOcean credits for your project. 

  • Deploy an internal container registry
    Kubernetes does not provide an internal container registry but it is often useful to add one. There are many projects which enable you to deploy an internal container registry, such as Harbour or Trow.
  • Deploy a log monitoring system
    So your applications produce logs. Lots of logs. How are you supposed to analyze them? A common solution is to aggregate and analyze them using the ELK stack, alongside fluentd or fluentbit.
  • Deploy a scalable SQL database cluster
    When deploying a database on Kubernetes, you have to make it redundant and scalable. You can rely on database management operators like KubeDB or database-specific solutions like Kubegres for PostgreSQL or the MySQL Operator for MySQL. 
  • Deploy scalable NoSQL database cluster
    When it comes to cloud native, using No-SQL solutions has its advantages. You can deploy a cluster of MongoDB, Cassandra, or CouchDB instances to explore how to run a NoSQL database in Kubernetes. 

Used Kubernetes before? Level-up your K8s skills with one of these projects. You’ll get $120 in DigitalOcean credits.  

  • Deploy a scalable message queue
    A critical component of all the scalable architectures are message queues used to store and distribute messages to multiple parties and introduce buffering. Kafka is widely used in this space and there are multiple operators like Strimzi or to deploy it. For this project, use a sample app to demonstrate how your message queue works. 
  • Deploy a big data management system
    Big data systems live in clouds as they need to be scalable. One of the more used big data management solutions is Spark, and it can be installed in Kubernetes leveraging its native integration with Kubernetes. 
  • Deploy a machine learning management platform
    Machine learning requires complex workflows, and can benefit from an AI/ML management platform. Kubeflow offers a wide range of features in this area, including creation of Notebooks, Pipelines, Model training, Model Serving, and more.
  • Deploy a security and compliance system
    When you deploy an image you may also deploy a security threat, and images can become quickly insecure as new threats are discovered and disclosed. To continuously monitor and detect threats, you can deploy a tool like Falco.

Kubernetes expert? Challenge yourself with one of these projects. You’ll get $120 in DigitalOcean credits for your project.

  • Deploy a virtual cluster solution
    Install vcluster to test upgrades (eg. 1.20 to 1.21 DOKS version) of your cluster. With a virtual cluster, you can create a new Kubernetes cluster inside your existing DOKS cluster, test the application in this new vcluster, and then upgrade your original cluster if everything works well with the new version.   https://loft-sh.medium.com/high-velocity-engineering-with-virtual-kubernetes-clusters-7df929ac6d0a
  • Deploy a GitOps CI/CD implementation
    GitOps is today the way you automate deployment pipelines within Kubernetes itself, and ArgoCD  is currently one of the leading implementations. Install it to create a CI/CD solution, using tekton and kaniko for actual image building. https://medium.com/dzerolabs/using-tekton-and-argocd-to-set-up-a-kubernetes-native-build-release-pipeline-cf4f4d9972b0
  • Deploy a solution for policy enforcement
    Install and use Kyverno, a policy engine designed for Kubernetes. It can validate, mutate, and generate configurations using admission controls and background scans. Kyverno policies are Kubernetes resources and do not require learning a new language. Kyverno is designed to work well with tools you already use like kubectl, kustomize, and Git. Create policies for mandatory labels for every deployment, and image download only permitted from DOCR.  https://kyverno.io/policies/
  • Deploy a solution for configuring Kubernetes "from the inside"
    Install Crossplane, which is like Terraform but you manage the infra from inside Kubernetes, not from outside. Crossplane is an open source Kubernetes add-on that enables platform teams to assemble infrastructure from multiple vendors, and expose higher level self-service APIs for application teams to consume, without having to write any code.

Want to build something that’s not on this list? 

Pitch us an idea that uses at least one project from the CNCF

Join the Kubernetes Challenge!

Support

Get Help

Join the #kubernetes-challenge channel in the DigitalOcean Deploy Discord

Judges

These are your DigitalOcean Kubernetes Challenge Judges who will be reviewing all final submissions.

Kim Schlesinger

Kim Schlesinger

Developer Advocate - Cloud Native
Bikram Gupta

Bikram Gupta

Manager, Product Management
Adam Wolfe Gordon

Adam Wolfe Gordon

Senior Engineer - DOKS