This program is very simple, it connects to a MySQL database based on the following env vars:
- MYSQL_HOST
- MYSQL_USER
- MYSQL_PASS
- MYSQL_PORT
And exposes itself on port 9090:
- On
/healthcheck
it returns an OK message, - On GET it returns all recorded rows.
- On POST it creates a new row.
- On PATCH it updates the creation date of the row with the same ID as the one specified in query parameter
id
Documentation files:
Bug Solution and Application Status ✅
Image Pushed to Docker Registery ✅
Here's an overview of the Architecture
Docker
Kubernetes
Go
Minikube
Helm
wait-for
Jenkins
ArgoCD
-
Docker
- Dockerfile
- Docker Compose
- Testing and running the application
-
Setup Jenkins
- Installing and building tools
- creating Github WebHook and Use Github Credentials in Jenkins
- creating the docker hub credentials for docker inside jenkins
- Finish the pipeline
- If error was in the build [report it]
- unless, push it to dockerhub
- use credentials as environment variables for security best practices
- setup build status for Github repo
-
Helm
- Add autoscaling manifest for number of replicas.
-
Add argocd app that points to helm manifests to apply gitops concept.
-
Secure your containers as much as you can.
- Choosed lightweight and secure docker image
- Run Code and Container security analysis using
Synk
- Added Additional stage in the Jenkins Pipeline before pushing to Docker repo
-
Fix a bug in the code that would appear when you test the api