{"id":18755043,"url":"https://github.com/savanarohit/rest-api-k8","last_synced_at":"2026-04-29T09:01:56.287Z","repository":{"id":183134915,"uuid":"666761040","full_name":"savanarohit/REST-API-K8","owner":"savanarohit","description":"This GitHub repository is your comprehensive guide to deploying REST APIs on Kubernetes. It includes practical tutorials, example configurations, and best practices for containerizing and scaling RESTful services with Kubernetes.","archived":false,"fork":false,"pushed_at":"2023-07-23T03:05:51.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-20T13:12:06.094Z","etag":null,"topics":["endpoint","kubernetes","kubernetes-deployment","rest-api","secret-management"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/savanarohit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-15T13:42:45.000Z","updated_at":"2024-07-04T15:36:14.000Z","dependencies_parsed_at":"2023-07-23T03:28:57.953Z","dependency_job_id":"cb7eebe6-c046-4233-9c95-ce28d097247e","html_url":"https://github.com/savanarohit/REST-API-K8","commit_stats":null,"previous_names":["savanarohit/api-k8-deployment"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/savanarohit/REST-API-K8","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/savanarohit%2FREST-API-K8","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/savanarohit%2FREST-API-K8/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/savanarohit%2FREST-API-K8/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/savanarohit%2FREST-API-K8/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/savanarohit","download_url":"https://codeload.github.com/savanarohit/REST-API-K8/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/savanarohit%2FREST-API-K8/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262026982,"owners_count":23246954,"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":["endpoint","kubernetes","kubernetes-deployment","rest-api","secret-management"],"created_at":"2024-11-07T17:31:20.813Z","updated_at":"2026-04-29T09:01:51.250Z","avatar_url":"https://github.com/savanarohit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Deploy a REST API in Kubernetes\n\nThis is an API WebApp deployment on Kubernetes\n\n### REST API deployment description\n\nREST API is an application conformed of 3 services, the api-external, the api-month, and the api-day. The api-external is the entry point and needs to be exposed outside the cluster via the URL https://api-external.dev through it you can invoke the 2 services api-month and api-day that print the day of the week and the month in their respective logs. \n\n### REST API details\n\n  The REST API call is secured using a secret in the headers. \n  The endpoints(ENDPOINT_DAY, ENDPOINT_MONTH), ports(PORT), and secret(API_SECRET) must be configured in each Kubernetes deployment through environment variables. \n  Use configmaps and secrets according to the variable type.\n\n### Tips\n\n  1.\tYou can use minikube to test your work.\n  2.\tComponents can have bugs, they're REST, so it shouldn't take long to figure it out.\n  3. \tYou can deploy fluentbit or filebeat and a single Elasticsearch instance without Kibana, we can view the logs through Elasticsearch REST API.\n\n### To-do\n\n  1.\tClone this repository\n  2.\tCreate a new dev branch\n  3.\tPlease, make sure you use as many commits as possible. We would love to see your progress\n  4.\tcreate a Pull Request to master\n  5.\tBe ready to answer questions\n\n### Requirements\n\n  1.\tKeep a clean and understandable folder structure.\n  2.\tDocument your work, we love comments and documentation.\n  3.\tWrite all the documentation and comments in English.\n  4.\tUse docker and Kubernetes.\n\n### Tasks\n\n  1.\tDeploy the services set from the repository to production env using Kubernetes.\n  2.\tConfigure a REST Kubernetes cronjob that calls both api endpoints every day at 1:00 am.\n  3.\tSend component logs to an Elasticsearch instance deployed in the cluster.\n\n### Testing\n\n  1. The deployment flow has to run, please provide short setup instructions.\n  2. Security.\n  3. Automation.\n  4. Liveness and Readiness of each dependent service.\n  5. Usage of Docker and Kubernetes.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsavanarohit%2Frest-api-k8","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsavanarohit%2Frest-api-k8","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsavanarohit%2Frest-api-k8/lists"}