{"id":49772582,"url":"https://github.com/brkcvlk/hello-k8s","last_synced_at":"2026-05-11T13:55:46.605Z","repository":{"id":349338996,"uuid":"1200799918","full_name":"brkcvlk/hello-k8s","owner":"brkcvlk","description":"A simple hello-k8s REST API deployed on Kubernetes with GitOps via ArgoCD","archived":false,"fork":false,"pushed_at":"2026-05-01T12:41:24.000Z","size":122,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-11T13:55:31.818Z","etag":null,"topics":["argocd","cicd","devops","docker","fastapi","gitops","k8s","kubernetes","minikube","nginx","python"],"latest_commit_sha":null,"homepage":"","language":"Python","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/brkcvlk.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-03T20:57:46.000Z","updated_at":"2026-05-01T12:41:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/brkcvlk/hello-k8s","commit_stats":null,"previous_names":["brkcvlk/hello-k8s"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/brkcvlk/hello-k8s","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brkcvlk%2Fhello-k8s","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brkcvlk%2Fhello-k8s/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brkcvlk%2Fhello-k8s/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brkcvlk%2Fhello-k8s/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brkcvlk","download_url":"https://codeload.github.com/brkcvlk/hello-k8s/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brkcvlk%2Fhello-k8s/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32897941,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"online","status_checked_at":"2026-05-11T02:00:05.975Z","response_time":120,"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":["argocd","cicd","devops","docker","fastapi","gitops","k8s","kubernetes","minikube","nginx","python"],"created_at":"2026-05-11T13:55:45.777Z","updated_at":"2026-05-11T13:55:46.597Z","avatar_url":"https://github.com/brkcvlk.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hello-k8s\n\n\u003e [!NOTE]\n\u003e This project was built for learning and practicing Kubernetes concepts. \n\nA Kubernetes project that serves a simple REST API (`GET /` : `{\"message\": \"hello k8s!\"}`) using FastAPI behind an Nginx reverse proxy, with a CI/CD pipeline and GitOps deployment via ArgoCD.\n\n## Architecture\n\n```\nInternet\n   │\n   ▼\nnginx-service (NodePort)\n  port: 30080 → targetPort: 80\n   │\n   ▼\nnginx Pod  ×1  (nginx:alpine)\n  listens on :80\n  reverse proxy → http://fastapi-service:80\n   │\n   ▼\nfastapi-service (ClusterIP)\n  port: 80 → targetPort: 8000\n   │\n   ▼\nfastapi Pod  ×2  (ghcr.io/brkcvlk/hello-k8s-fastapi:{{Github-SHA}})\n  listens on :8000\n  /         → {\"message\": \"hello k8s!\"}\n  /health   → liveness probe\n  /ready    → readiness probe\n```\n### Example ArgoCD application view : K8s objects and their relationships in the hello-k8s namespace\n\n![ArgoCD Overview](assets/argocd-overview.png)\n\n## Prerequisites\n\n- [minikube](https://minikube.sigs.k8s.io/)\n- [ArgoCD](https://argo-cd.readthedocs.io/)\n\n## Quick start\n\n### 1. Start the Cluster\n\n```bash\nminikube start --cpus=2 --memory=4096\n```\n\n\u003e [!NOTE]\n\u003e If kubectl isnt installed, you can use it via minikube.\n\u003e Set an alias: \n\u003e`alias kubectl=\"minikube kubectl --\"` or use `minikube kubectl --` directly.\n\n### 2. Setup ArgoCD\n\n```bash\nkubectl create namespace argocd\nkubectl apply -n argocd --server-side --force-conflicts \\\n  -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.13.3/manifests/install.yaml\nkubectl get pods -n argocd\n```\n\nAccess the ArgoCD UI : `argocd-server` is ClusterIP, minikube opens a tunnel\n```bash\nminikube service argocd-server -n argocd --url\n```\n\nRetrieve the initial admin password\n```bash\nkubectl -n argocd get secret argocd-initial-admin-secret \\\n  -o jsonpath=\"{.data.password}\" | base64 -d\n```\n\nConnect to repository\n```bash\nargocd login \u003cargocd-url\u003e --username admin --password \u003cpassword\u003e --insecure\n\nargocd repo add https://github.com/brkcvlk/hello-k8s \\\n  --username brkcvlk \\\n  --password \u003cgithub-pat\u003e\n```\n\n### 3. Apply ArgoCD Manifest\n```bash\nkubectl apply -f manifests/argocd-app.yml\n```\n\n\n## Endpoints\n\n| Endpoint | Probe | Description |\n|---|---|---|\n| `GET /` | — | Returns `{\"message\": \"hello k8s!\"}` |\n| `GET /health` | liveness | Process is alive |\n| `GET /ready` | readiness | App is ready to serve traffic |\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrkcvlk%2Fhello-k8s","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrkcvlk%2Fhello-k8s","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrkcvlk%2Fhello-k8s/lists"}