{"id":18866482,"url":"https://github.com/nordcloud/aksworkshop","last_synced_at":"2026-01-27T03:02:22.224Z","repository":{"id":149764785,"uuid":"213318121","full_name":"nordcloud/aksworkshop","owner":"nordcloud","description":null,"archived":false,"fork":false,"pushed_at":"2019-10-14T08:17:32.000Z","size":16,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-30T14:32:49.383Z","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/nordcloud.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":"2019-10-07T07:14:41.000Z","updated_at":"2019-10-14T14:01:15.000Z","dependencies_parsed_at":"2023-05-17T08:46:33.937Z","dependency_job_id":null,"html_url":"https://github.com/nordcloud/aksworkshop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nordcloud/aksworkshop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nordcloud%2Faksworkshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nordcloud%2Faksworkshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nordcloud%2Faksworkshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nordcloud%2Faksworkshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nordcloud","download_url":"https://codeload.github.com/nordcloud/aksworkshop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nordcloud%2Faksworkshop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28798615,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T01:07:07.743Z","status":"online","status_checked_at":"2026-01-27T02:00:07.755Z","response_time":168,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2024-11-08T05:06:39.444Z","updated_at":"2026-01-27T03:02:22.195Z","avatar_url":"https://github.com/nordcloud.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"## Configure Azure CLI to access your subscription\n\n```\naz login\naz account set --subscription \u003csubscriptionId\u003e\n```\n\n## Create resource group for you cluster\n\n```\naz group create --name \u003cresource-group\u003e --location \u003cregion\u003e\n```\n\n## Create AKS cluster\n\n```\naz aks create --resource-group \u003cresource-group\u003e \\\n    --name \u003ccluster-name\u003e \\\n    --location \u003cregion\u003e \\\n    --kubernetes-version 1.15.3 \\\n    --enable-addon monitoring\n```\n\n## Verify connectivity from kubectl\n```\naz aks get-credentials --resource-group \u003cresource-group\u003e --name \u003ccluster-name\u003e\n\nkubectl get nodes\n```\n\n## Install Helm\n```\nkubectl apply -f helm-rbac.yaml\nhelm init --service-account tiller\n```\n\n## Deploy MongoDB using Helm\n```\nhelm install stable/mongodb --name orders-mongo --set mongodbUsername=orders-user,mongodbPassword=orders-password,mongodbDatabase=akschallenge\n```\n\n## Create MongoDB secret\n```\nkubectl create secret generic mongodb --from-literal=mongoHost=\"orders-mongo-mongodb.default.svc.cluster.local\" --from-literal=mongoUser=\"orders-user\" --from-literal=mongoPassword=\"orders-password\"\n```\n\n## Deploy backend and create service\n```\nkubectl apply -f captureorder-deployment.yaml\nkubectl apply -f captureorder-service.yaml\n```\nWait for couple of minutes for ALB to assign a public IP\n```\nkubectl get service captureorder -o jsonpath=\"{.status.loadBalancer.ingress[*].ip}\" -w\n```\n\n## Verify connection between backend service and mongo\n```\ncurl -d '{\"EmailAddress\": \"email@domain.com\", \"Product\": \"prod-1\", \"Total\": 100}' -H \"Content-Type: application/json\" -X POST http://[Your Service Public LoadBalancer IP]/v1/order\n```\n\n## Deploy frontend application\nEdit `CAPTUREORDERSERVICEIP` in `frontend-deployment.yaml`, then deploy it\n\n```\nkubectl apply -f frontend-deployment.yaml\nkubectl apply -f frontend-service.yaml\n```\n\n## Install ingress\n```\nhelm repo update\n\nhelm upgrade --install ingress stable/nginx-ingress --namespace ingress\n```\n\nWait for a couple of minutes and get public IP of ingress\n\n```\nkubectl get svc -n ingress ingress-nginx-ingress-controller -o jsonpath=\"{.status.loadBalancer.ingress[*].ip}\"\n```\n\n## Configure Ingress\nEdit `frontend-ingress.yaml` with your Ingress' IP address and deploy it\n\n```\nkubectl apply -f frontend-ingress.yaml\n```\n\n## Check your site\nhttp://frontend.YOUR-INGRESS-IP-ADDRESS.nip.io\n\n## Enable TLS on Ingress\nInstall certmanager\n```\nhelm install stable/cert-manager --name cert-manager --set ingressShim.defaultIssuerName=letsencrypt --set ingressShim.defaultIssuerKind=ClusterIssuer --version v0.5.2\n```\n\nUpdate Ingress configuration with TLS (remember to edit the file first)\n```\nkubectl apply -f frontend-ingress-tls.yaml\n```\n\nVerify it's up and running\n```\nkubectl describe certificate frontend\n```\n\n## Run load test\nStart the test\n```\naz container create -g \u003cresource-group\u003e -n loadtest --image azch/loadtest --restart-policy Never -e SERVICE_IP=\u003cpublic ip of order capture service\u003e\n```\n\nCheck how it goes\n```\naz container logs -g \u003cresource-group\u003e -n loadtest\n```\n\nStop it\n```\naz container delete -g \u003cresource-group\u003e -n loadtest\n```\n\n## Create Horizontal Pod Autoscaler\n```\nkubectl apply -f captureorder-hpa.yaml\n```\n\nRun the test again.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnordcloud%2Faksworkshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnordcloud%2Faksworkshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnordcloud%2Faksworkshop/lists"}