This project is a monolithic Go application with PostgreSQL, deployed on Kubernetes using Minikube for local development. The application has two main components: the admin entry point for administrative tasks and the blog-api for serving the blog content.
- Install Minikube and start the cluster.
minikube start
- build the Docker image and push it to the Minikube Docker daemon.
make dev-up
- Deploy the application to the Minikube cluster.
make dev-apply
- Show the Cluster status.
make dev-status-all
- Show the application logs.
make dev-logs
- Open the application in the browser.
minikube service blog-admin -n blog-system
A table like the following will be displayed:
NAMESPACE | NAME | TARGET PORT | URL |
---|---|---|---|
blog-system | blog-admin | 8000 | http://http://192.168.59.104:30131 |
blog-system | blog-api | 8000 | http://192.168.59.104:32413 |
then open the URL in the browser.
- down the application from the Minikube cluster.
make dev-down
- delete the Minikube cluster.
minikube delete
- Run InitContainer to initialize the database migrations/seed.
- Liveness and Readiness probes.
- Resources Requests and Limits.
- Horizontal Pod Autoscaler.
- Ingress Controller.
- Monitoring with Prometheus and Grafana.
- CI/CD Integration.
- Helm Charts.
- Add more tests.
- Network Policies.
- Secrets Management.
- Security Best Practices.