Covergo Senior Cloud Engineer Interview Test Solution
Notes:
Please use Kind to create a local Kubernetes cluster
https://kind.sigs.k8s.io/
Add Makefile with commands (can be extended if required):
make up - creates Kubernetes cluster;
make deploy - deploy all required manifests, uploads images and etc;
make down - destroy Kubernetes cluster and all resources.
Expected Output:
Scenario 1: Create a multi-node Kubernetes cluster with Terraform.
Create TF scripts for deploying a multi-node Kind cluster
Name: new
Kind provider: https://github.com/tehcyx/terraform-provider-kind
Nodes: 1 control plane and 2 worker node
Deploy the Kind cluster with Terraform.
Scenario 2: Create custom helm charts and deploy them to the Kubernetes cluster.
Task 1:
Create an HTTP application that shows the current time
name: app1
listen: 0.0.0.0:8282
Inject environment variable with configmap:
variable: APP_NAME = CoverGo
variable: APP_VERSION = 1.0.1
Bundle application to the Docker image.
Upload the image to the Kubernetes cluster with the kind load command.
Create a custom helm chart that deploys 2 replicas of the application app1.
Schedule replica deployment on different worker nodes.
Task 2:
Create another HTTP application based on the Nginx image.
name: nginx1
listen: 0.0.0.0:8282
Attach persistent volume:
size: 1Mb
mount path: /data
Create a custom helm chart that deploys 1 replica of the application nginx1.
Scenario 3: Test the network isolation and policy enforcement features of Kind.
- Define network policies in a Kubernetes manifest to restrict network traffic between app1 and nginx1:
- Deploy the manifest to the Kind cluster and ensure that it is possible to reach app1 from nginx1, but the opposite (from app1 to ng
- inx1).
- Verify that pods can communicate only with themselves based on the defined network policies.
- from nginx1: curl http://app1:8282 <= works
- from app1: curl http://nginx1:8282 <= forbidden
Scenario 4: Design a multi-stage deployment pipeline
Propose a solution for the app1 multi-stage release pipeline with assumptions:
Cloud provider: AWS, CGP, Azure (select one)
Environments: Dev => Prod
Repository: Github
Distribution: helm chart
Draw a principal diagram and add the required description.
Solution:
Solution Link: https://shawon10.gumroad.com/l/covergo-solution
Book 1:1 Mentorship session to get the solution with some trainings
Solution Mentorship Link: https://topmate.io/ashadullah_shawon/431597
0 comments:
Post a Comment