Kubernetes has made it very easy to deploy applications to the cloud at a higher scale than ever, but the development practices have not evolved at the same speed as application deployment patterns.
Today, most developers try to either run parts of the infrastructure locally, or just test these integrations directly in the cluster via CI jobs or the "docker build, docker push, kubectl apply" cycle. It works, but this workflow is painful and incredibly slow.
Okteto makes this cycle a lot faster by launching development environment in Kubernetes. You write your code locally using your favorite tools and Okteto detects the code changes and instantly synchronizes your code to your development environment. There you can use your compilers and hot reloaders to see your changes live in seconds.
All you need to get started is the Okteto CLI and access to a Kubernetes cluster.
We created a few guides to get you started with your favorite programming language:
More samples on how to use Okteto are available here.
Your development environment is defined in a simple yaml manifest.
- Run
okteto init
to inspect your project and generate your own config file. - Run
okteto up
to launch your development environment in seconds.
Add okteto.yml
to your repo and make collaboration easier than ever. Clone the repository and simply run okteto up
to launch a fully configured development environment.
You can swap your development environment with an existing Kubernetes deployment, and develop directly in your cluster. This helps eliminate integration issues since you're developing the same way your application runs in production.
Okteto supports applications with one or with multiple services.
Okteto detects your code changes and synchronizes your code to your development environment (powered by Syncthing). Files are synchronized both ways. If you edit a file directly in your development environment, the changes will be reflected locally as well. Great for keeping your package-lock.json
or requirements.txt
up to date.
Okteto easily integrates and augments your existing tools. You write code locally, which means Okteto is compatible with any IDE. And you can configure your own development environment runtime using a docker image, with your own compilers, linters, debuggers or hot reloaders.
Okteto decouples deployment from development. Because of this, you can deploy your application with kubectl, Helm, a serverless framework or even a CI job and use Okteto later to develop any component of your application. No need to change your manifests or deployment scripts.
Local or remote. If you can run kubectl apply
you can use Okteto. Our community uses Okteto in all major Kubernetes distros, from Minikube and k3s all the way to GKE, Digital Ocean, AKS, EKS and Civio.
You can also use Okteto in Okteto Cloud, the best development platform for Kubernetes applications.
- How does Okteto work?
- Get started following our installation guides.
- Check the Okteto CLI reference and the okteto.yml reference
- Explore our samples to learn more about the power of Okteto
- Frequently asked questions (FAQs)
- Known issues
Okteto is written in Go under the Apache 2.0 license - contributions are welcomed whether that means providing feedback, testing existing and new feature or hacking on the source.
Please see the guide on contributing.
We use GitHub issues to track our roadmap. A milestone is created every month to track the work scheduled for that time period. Feedback and help are always appreciated!
Got questions? Have feedback? Join the conversation in Slack! If you don't already have a Kubernetes slack account, sign up here.
Follow @OktetoHQ on Twitter for important announcements.
Or get in touch with the maintainers:
Okteto is licensed under the Apache 2.0 License.
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to hello@okteto.com.