sadpdtchr / okteto

Local development experience for Kubernetes apps

Home Page:https://okteto.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Okteto: A Tool to Develop Applications in Kubernetes

GitHub release CircleCI Scope Apache License 2.0

CII Best Practices

Overview

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.

Install

MacOS / Linux

curl https://get.okteto.com -sSfL | sh

Windows

Download https://downloads.okteto.com/cli/okteto.exe and add it to your $PATH.

You can also directly download the precompiled binary from the releases page.

Getting started

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:

  1. ASP.NET Core
  2. Golang
  3. Java Gradle
  4. Java Maven
  5. Node
  6. PHP
  7. Python
  8. Ruby

More samples on how to use Okteto are available here.

Features

Development environments on demand

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.

Developer Mode

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.

Instant file synchronization

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.

Keep Your Own Tools

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.

Compatible with any Kubernetes cluster

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.

Learn More

Roadmap and Contributions

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.

How do I become a contributor?

Please see the guide on contributing.

Roadmap

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!

Stay in Touch

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:

About Okteto

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.

About

Local development experience for Kubernetes apps

https://okteto.com

License:Apache License 2.0


Languages

Language:Go 99.2%Language:Shell 0.6%Language:Makefile 0.2%