The purpose of this challenge is to know not only about your technical skills, but also:
- Know how do you approach the infrastructure design
- Know how do you explain the solution and communicate
As the position is based on the DevOps world, we ask you to set up a CI/CD pipeline. Basically, you need to set up a repository, connect it to a pipeline with some automation on it, so every time the repository is updated, a new Docker image is build, ready to use it in a deployment.
In this repository we provide you the containerized application, and the Dockerfile. Is a simple Nginx webserver, serving a static HTML file.
The deadline is 7 days, starting today (the day you got the email from HR with this information). Feel free to get back to us if you have any questions or concerns, or if for any reason you can't finish within the given timeline.
At least:
- You must use GitHub, Gitlab or any other
git-like repository for hosting the source code. - You must use Jenkins automation tool for setting up the pipeline.
- You must use Docker Hub or any other Docker container registres like ACR, ECR etc. to save the container images.
- The pipeline should be triggered when a Pull request is merged into
mainormasterbranches of your repository. Direct commits intomainormasterare not allowed. - You must use as much configuration-as-code (CaC) as possible. Authentication secrets like usernames/passwords/tokens should be isolated from the tools you're using.
- (BONUS POINT) Deploy the image and run the app somewhere on AKS/EKS/Minikube/Your own Kubernetes cluster, if possible create the CD pipeline in Jenkins for the deployment to Kubernetes cluster and apply blue/green deployment.
To achieve the requirements, you should follow this procedure:
- Clone this repository to your repo
- Set up the pipeline
- Modify the
index.htmlfile, changing the content inside<main></main>tags for something else i.e.Hello! I'm [YOUR_NAME]. - Build the docker image and push it to a container registry
- (BONUS POINT) Deploy the image and run the app somewhere on AKS/EKS/Minikube/Your own Kubernetes cluster, if possible create the CD pipeline in Jenkins for the deployment to Kubernetes cluster and apply blue/green deployment.
You must:
- Provide the source code you used.
- Show us how the CI/CD works with a real example.