GithubHelp home page GithubHelp logo

devsecops-challenge's Introduction

9Spokes DevSecOps Challenge

Overview

Welcome to the 9Spokes DevSecOps technical challenge! We value and appreciate the diversity and uniqueness of thought in each individual. It is our intent is to learn more about you via the code you write and your approach to solving problems.

This repo contains the instructions and the data you need to complete the 9Spokes DevSecOps Challenge. This challenge is not intended to be complex, but it is an opportunity for you to showcase your understanding and applying of good infrastructure & basic development practices. We strongly value the Infrastructure as Code approach to managing Cloud resources, hence we encourage you to think about the repeatability of your exercise using a config-driven approach to infrastructure.

You are encouraged to treat this as a real-life project. This typically means:

  • Use version control effectively
  • Include some basic documentation if applicable
  • Use a proper naming convention that suits you

Once you are done, please share your work by submitting a public link to your repository. Include any special notes or running instructions in a README.md file of your choice.

Try not to exceed 2-3 hours on this exercise.

The Challenge

Docker

This repo contains a sample hello world application written in Go in the hello/ directory. The first phase of this challenge is to build this application into a Docker container using the supplied Dockerfile. You will need to push the resulting image to a Docker registry of your choice. The image will be used in subsequent steps.

Kubernetes

  • Create a Kubernetes cluster using any method you'd like (e.g. kops, minikube, microk8s or Cloud)
  • Create a new namespace called staging.

Single Pod

  • Create a new pod called hello in this staging namespace, make sure it is in a healthy state. Use the hello image from the step above for this task.

Multi-node

  • Assume you are operating a 3 node (node-1, node-2, and node-3) cluster, deploy a pod called p2 in every node of your cluster.

Multi-container Pod

  • Create a new pod called p3 in the staging namespace. This pod contains two containers and the pod only should be created when one of these two containers has a file called /app/ready.txt. The pod should fail if that container does not have that file.

Monitoring

  • Deploy prometheus alert manager and grafana into the kube-system namespace and configure customised alerts called 9spokes-cpu-alert which is only going to be trigger when a pod has 80% of the CPU running for 60 seconds. You should send the details of this alert with your name into Microsoft Teams Channel located here.
  • Deploy an ingress controller to protect prometheus and alert manager using any authentication method you'd like.

Thank you and good luck!

devsecops-challenge's People

Contributors

mouradkessas avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.