Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/savanarohit/rest-api-k8
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.
https://github.com/savanarohit/rest-api-k8
endpoint kubernetes kubernetes-deployment rest-api secret-management
Last synced: 6 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/savanarohit/rest-api-k8
- Owner: savanarohit
- License: mit
- Created: 2023-07-15T13:42:45.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-07-23T03:05:51.000Z (over 1 year ago)
- Last Synced: 2024-11-07T17:49:14.395Z (about 2 months ago)
- Topics: endpoint, kubernetes, kubernetes-deployment, rest-api, secret-management
- Language: Python
- Homepage:
- Size: 17.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Deploy a REST API in Kubernetes
This is an API WebApp deployment on Kubernetes
### REST API deployment description
REST 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.
### REST API details
The REST API call is secured using a secret in the headers.
The endpoints(ENDPOINT_DAY, ENDPOINT_MONTH), ports(PORT), and secret(API_SECRET) must be configured in each Kubernetes deployment through environment variables.
Use configmaps and secrets according to the variable type.### Tips
1. You can use minikube to test your work.
2. Components can have bugs, they're REST, so it shouldn't take long to figure it out.
3. You can deploy fluentbit or filebeat and a single Elasticsearch instance without Kibana, we can view the logs through Elasticsearch REST API.### To-do
1. Clone this repository
2. Create a new dev branch
3. Please, make sure you use as many commits as possible. We would love to see your progress
4. create a Pull Request to master
5. Be ready to answer questions### Requirements
1. Keep a clean and understandable folder structure.
2. Document your work, we love comments and documentation.
3. Write all the documentation and comments in English.
4. Use docker and Kubernetes.### Tasks
1. Deploy the services set from the repository to production env using Kubernetes.
2. Configure a REST Kubernetes cronjob that calls both api endpoints every day at 1:00 am.
3. Send component logs to an Elasticsearch instance deployed in the cluster.### Testing
1. The deployment flow has to run, please provide short setup instructions.
2. Security.
3. Automation.
4. Liveness and Readiness of each dependent service.
5. Usage of Docker and Kubernetes.