https://github.com/enricopesce/kubeflow
Develop an application directly inside a Kubernetes cluster and release it with ArgoCD
https://github.com/enricopesce/kubeflow
argocd cloudnative continuos-deployment devspace kubernetes
Last synced: 3 months ago
JSON representation
Develop an application directly inside a Kubernetes cluster and release it with ArgoCD
- Host: GitHub
- URL: https://github.com/enricopesce/kubeflow
- Owner: enricopesce
- Created: 2021-10-27T14:23:14.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-12-16T16:25:05.000Z (over 3 years ago)
- Last Synced: 2025-01-19T05:54:22.501Z (5 months ago)
- Topics: argocd, cloudnative, continuos-deployment, devspace, kubernetes
- Language: Dockerfile
- Homepage:
- Size: 26.4 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
This project is a lab for understanding how I can setup a complete workflow from development to production with some objectives:
1) minor number of tools
2) better development experience
3) identical infrastructure at every stage
4) continuos deployment## Install Kubernetes and other requirements
To start you need to prepare a local kubernetes setup with Minikube and Devspace:
brew install minikube hyperkit devspace (Mac Os)
minikube start --driver=hyperkit
minikube addons enable metrics-server
minikube addons enable ingressTo deep dive to Devspace follow this official onboarding page https://devspace.sh/cli/docs/guides/basics
## Starts development mode
DevSpace allows you to develop applications directly inside a Kubernetes cluster.
The biggest advantages of developing directly inside Kubernetes is that your dev environment will be very similar to your release (production\staging etc) environment and you can have much greater confidence that everything will work in the same environment when shipping new features.devspace use namespace kubeflow-dev
devspace devNow you can launch commands inside the pod es:
composer require --dev phpunit/phpunit
...
...an you can develop with your preferred IDE.
## Tests with non development without CD
If you need to test K8s modifications or new features you can work with the development mode or you can launch the release environment locally or remotely without ArgoCD or CI\CD and a git trigger.
devspace use profile release
devspace use namespace kubeflow-relese
devspace deploy## Cleanup dev resources
devspace purge
### ArgoCD setup
In your K8s cluster install ArgoCD:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
kubectl port-forward svc/argocd-server -n argocd 8090:443Get the password admin
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Now you can test and monitor the deployments with http://localhost:8090
### ArgoCD adding application deployment
Define the ArgoCD application
kubectl apply -n argocd -f app.yaml
## Cleanup all
minikube delete