Giter Club home page Giter Club logo

okteto's Introduction

Okteto: A Tool to Develop Applications in Kubernetes

GitHub release CircleCI 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.

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

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 [email protected].

okteto's People

Contributors

rberrelleza avatar pchico83 avatar rlamana avatar serbixote avatar danielhelfand avatar anesbenmerzoug avatar borjaburgos avatar fermayo avatar kivi avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.