This repo contains simple python flask app ci processs, deployment to kubernetes minikube and guide of environment setup
- Github
- Linux Ubuntu
- Jenkins
- Docker
- Minikube
- HelmChart
- Nginx
- Automate Linux OS stuff with Ansible
- Prepare docker-compose for Local development
- Use Nexus or Harbor for Docker images and Helm Charts
- Add Testing stages CI/CD - unit, integraation, e2e and contract testing
- Implement makefiles for easy management repo
- Implement Sops encryption for encrypt sensitive data in under repo
- Use kaniko for bulding docker image without need docker daemon
- Impelement Security in CI/CD (Sonarqube, Docker,Code Scanning and Owaps10 after deploy)
- Multibranh pipeline and shared libs with groovy in jenkins and implement conditional based branch deploy(GitFlow, Trunk Based Development)
- Notify Jobs Status to Slack
- Get Jenkins Credentials and App credentials from Hachicorp Vault
git clone https://github.com/verticaio/k8sdeploy.git
docker build -t python-flask-docker .
docker run --name python-flask-docker -d -p 8080:8080 python-flask-docker
curl http://localhost:8080
# Login to Linux VM
git clone https://github.com/verticaio/k8sdeploy.git
cd k8sdeploy/infra/setup
chmod +x public_nginx.sh setup-req.sh
./setup-req.sh
Configure Jenkins UI, install required plugins and .etc.
Deploy App minikube k8s from jenkins
Apply Nginx Configuration for accesing from web browser
# Login to Linux VM
cd k8sdeploy/infra/setup
./public_nginx.sh
Jenkins Webhook triggered when you push something to main branch of repo.
Have fun :)