{"id":26023804,"url":"https://github.com/feed0/gcp-load-balancer-challenge","last_synced_at":"2026-02-02T12:47:41.532Z","repository":{"id":277181110,"uuid":"931582139","full_name":"feed0/gcp-load-balancer-challenge","owner":"feed0","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-12T22:11:44.000Z","size":8,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-06T11:40:41.622Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/feed0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-12T14:20:08.000Z","updated_at":"2025-02-12T22:11:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"ea315ca5-d81f-40cc-935d-c15c48532198","html_url":"https://github.com/feed0/gcp-load-balancer-challenge","commit_stats":null,"previous_names":["feed0/gcp-load-balancer-challenge"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/feed0/gcp-load-balancer-challenge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feed0%2Fgcp-load-balancer-challenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feed0%2Fgcp-load-balancer-challenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feed0%2Fgcp-load-balancer-challenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feed0%2Fgcp-load-balancer-challenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feed0","download_url":"https://codeload.github.com/feed0/gcp-load-balancer-challenge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feed0%2Fgcp-load-balancer-challenge/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262699719,"owners_count":23350361,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-06T11:33:14.219Z","updated_at":"2026-02-02T12:47:36.513Z","avatar_url":"https://github.com/feed0.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# gcp-load-balancer-challenge\n\n## Challenge scenario\n\nYou have started a new role as a Junior Cloud Engineer for Jooli, Inc. You are expected to help manage the infrastructure at Jooli. Common tasks include provisioning resources for projects.\n\nYou are expected to have the skills and knowledge for these tasks, so step-by-step guides are not provided.\n\nSome Jooli, Inc. standards you should follow:\n\n1. Create all resources in the default region or zone, unless otherwise directed. The default region is `$REGION`, and the default zone is `$ZONE`.\n\n2. Naming normally uses the format team-resource; for example, an instance could be named **nucleus-webserver1**.\n\n3. Make sure to create an instance template in global location.\n\n4. Allocate cost-effective resource sizes. Projects are monitored, and excessive resource use will result in the containing project's termination (and possibly yours), so plan carefully. This is the guidance the monitoring team is willing to share: unless directed, use **e2-micro** for small Linux VMs, and use **e2-medium** for Windows or other applications, such as Kubernetes nodes.\n\n## Task 1. Create a project jumphost instance\n\nYou will use this instance to perform maintenance for the project.\n\nRequirements:\n\n- Name the instance `$JUMPHOST`.\n- Create the instance in the `$ZONE` zone.\n- Use an **e2-micro** machine type.\n- Use the default image type (Debian Linux).\n\n`ON THE GOOGLE CLOUD SHELL:`\n```shell\n# VARS\nexport ZONE=___\nexport REGION=\"${ZONE%-*}\"\nexport JUMPHOST=___\n\n# SETUP DEFAULTS\ngcloud config set compute/region $REGION\ngcloud config set compute/zone $ZONE\n\n# TASK 1 - JUMPHOST VM\ngcloud compute instances create nucleus-jumphost-835 \\\n    --zone=$ZONE \\\n    --machine-type=e2-micro\n```\n\n## Task 2. Set up an HTTP load balancer\n\nYou will serve the site via nginx web servers, but you want to ensure that the environment is fault-tolerant. Create an HTTP load balancer with a managed instance group of 2 nginx web servers. Use the following code to configure the web servers; the team will replace this with their own configuration later.\n\n```shell\ncat \u003c\u003c EOF \u003e startup.sh\n#! /bin/bash\napt-get update\napt-get install -y nginx\nservice nginx start\nsed -i -- 's/nginx/Google Cloud Platform - '\"\\$HOSTNAME\"'/' /var/www/html/index.nginx-debian.html\nEOF\n```\n\n\u003e Note: There is a limit to the resources you are allowed to create in your project, so do not create more than 2 instances in your managed instance group. If you do, the lab might end and you might be banned.\n\nYou need to:\n\n1. Create an `instance template`. Don't use the default machine type. Make sure you specify **e2-medium** as the machine type and create the **Global** template.\n2. Create a `managed instance group` based on the template.\n3. Create a `firewall rule` named as `$FWRULE` to allow traffic (80/tcp).\n4. Create a `health check`.\n5. Create a `backend service`, and add your instance group as the backend to the backend service group with named port (http:80).\n6. Create a `URL map`, and target the HTTP proxy to route the incoming requests to the default backend service.\n7. Create a `target HTTP proxy` to route requests to your URL map\n8. Create a `forwarding rule`.\n\n\u003e Note: You may need to wait for 5 to 7 minutes to get the score for this task.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeed0%2Fgcp-load-balancer-challenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeed0%2Fgcp-load-balancer-challenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeed0%2Fgcp-load-balancer-challenge/lists"}