MCPcopy
hub / github.com/okteto/okteto

github.com/okteto/okteto @3.21.0 sqlite

repository ↗ · DeepWiki ↗ · release 3.21.0 ↗
5,364 symbols 23,353 edges 720 files 1,646 documented · 31%
README

Okteto: A Tool to Develop Applications on Kubernetes

CircleCI CII Best Practices GitHub release Apache License 2.0 Total Downloads Chat in Slack

Overview

Kubernetes has made it very easy to deploy applications to the cloud at a higher scale than ever, but 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 their integrations directly in the cluster via CI jobs, or the docker build/redeploy cycle. It works, but this workflow is painful and incredibly slow.

okteto accelerates the development workflow of Kubernetes applications. You write your code locally and okteto detects the changes and instantly updates your Kubernetes applications.

How it works

Okteto enables development inside a container, providing a seamless IDE and tool integration as if you were working locally but with the resources of a remote cluster. When you run okteto up your Kubernetes deployment is replaced by a Development Container that contains your development tools (e.g. maven and jdk, or npm, python, go compiler, debuggers, etc). This development container can use any docker image. The development container inherits the same secrets, configmaps, volumes or any other configuration value of the original Kubernetes deployment.

How does it work

The end result is a remote cluster that is seen by your IDE and tools as a local filesystem/environment. You keep writing code on your local IDE and as soon as you save a file, the change goes to the development container, and your application instantly updates (taking advantage of any hot-reload mechanism you already have). This whole process happens in an instant. No docker images need to be created and no Kubernetes manifests need to be applied to the cluster.

Why Okteto

okteto has several advantages when compared to more traditional development approaches:

  • Fast inner loop development: build and run your application using your favorite tools directly from your development container. Native builds are always faster than the docker build/redeploy cycle.
  • Realistic development environment: your development container reuses the same variables, secrets, sidecars, volumes as your original Kubernetes deployment. Realistic environments eliminate integration issues.
  • Replicability: development containers eliminate the need to install your dependencies locally, everything is pre-configured in your development image.
  • Unlimited resources: get access to the hardware and network of your cluster when developing your application.
  • Deployment independent: okteto decouples deployment from development. You can deploy your application with kubectl, Helm, a serverless framework, or even a CI pipeline and use okteto up to develop it. This is especially useful for cloud-native applications where deployment pipelines are not trivial.
  • Works anywhere: okteto works with any Kubernetes cluster, local or remote. okteto is also available for macOS, Linux, and Windows.

Getting started

All you need to get started is to install the Okteto CLI and have access to a Kubernetes cluster. You can follow our guide for setting up a Kubernetes cluster on AWS here.

Okteto Open Source CLI Features

The Okteto Open Source CLI requires access to a Kubernetes cluster. The Okteto Open Source CLI aims to enable you to develop your cloud-native applications using Development Containers in your Kubernetes clusters. If you are interested in helping your entire team share a Kubernetes cluster for development, we recommend you check out our commercial product, the Okteto Platform

The Okteto Open Source CLI supports the following commands:

  • okteto context
  • okteto up
  • okteto down

[!NOTE] ⚠️ Notice: The open-source version of Okteto only supports the dev section of the Okteto manifest. For additional features and full functionality, consider exploring the Okteto Platform.

We have getting started guides for the Open Source mode for the following languages:

Okteto Platform CLI Features

The Okteto Platform CLI requires the installation of the Okteto Helm Chart in your Kubernetes cluster. In this mode, all the Okteto CLI commands are available (build, deploy, up, down, destroy, etc). The Okteto Platform comes with additional features like:

  • User authentication and access control to Kubernetes using your Identity provider
  • Build service for remote container image creation
  • Integration with GitHub, Gitlab, Bitbucket, etc.
  • Preview environments for every pull request
  • Dynamic scaling of environments based on usage
  • Secrets manager for your development environments
  • Okteto Insights to provide observability on your development environments

And much more! Please take a look at the Okteto Platform docs to learn more.

Features Comparison

Feature Okteto Open Source CLI Okteto Platform CLI
Development Containers Available Available
Build Service Not Available Available
User Management Not Available Available
Access Control Not Available Available
Automated Scaling Not Available Available
Secrets Management Not Available Available
Observability Tools Not Available Available
Support Community Support Premium Support available
Documentation Open Source Samples Platform Docs

Useful links

Releases

Okteto is monthly released into three channels: stable, beta, and dev. When Okteto is installed, the stable channel is used by default. If you need to access features that are not yet available, you can install the Okteto CLI from the beta or dev channels. More information can be found in the release documentation.

Support and Community

Got questions? Have feedback? Join the conversation in our Community Forum.

Follow @OktetoHQ on Twitter for important announcements.

✨ Contributions

We ❤️ contributions, big or small. See our guide on how to get started.

You can also join us in the #okteto Slack channel and chat with us! If you don't already have a Kubernetes Slack account, sign up here.

Thanks to all our contributors!

Contributors Avatars

Extension points exported contracts — how you extend this code

OktetoClientProvider (Interface)
OktetoClientProvider provides an okteto client ready to use or fail [7 implementers]
pkg/types/interface.go
Builder (Interface)
Builder is the interface to run the build of the Dockerfile to execute remote commands like deploy and destroy [16 implementers]
pkg/remote/remote.go
Divert (Interface)
Divert is the interface for the divert operations needed for stacks command [6 implementers]
pkg/cmd/stack/deploy.go
Logger (Interface)
Logger is the interface used to log messages [6 implementers]
pkg/config/image.go
DivertDeployer (Interface)
DivertDeployer defines the operations to deploy the divert section of an Okteto manifest [18 implementers]
cmd/deploy/deploy.go
ReplacerConfigInterface (Interface)
(no doc) [7 implementers]
pkg/registry/replacer.go
Logger (Interface)
(no doc) [6 implementers]
pkg/divert/k8s/types.go
K8sClientProvider (Interface)
(no doc) [7 implementers]
pkg/okteto/k8s.go

Core symbols most depended-on inside this repo

Errorf
called by 1422
pkg/log/format.go
Infof
called by 633
pkg/config/image.go
Error
called by 516
pkg/log/format.go
Run
called by 460
pkg/remote/remote.go
GetContext
called by 293
pkg/okteto/context.go
Fatalf
called by 239
pkg/log/format.go
String
called by 205
pkg/env/var.go
Printf
called by 197
pkg/log/format.go

Shape

Function 2,465
Method 1,879
Struct 781
Interface 136
TypeAlias 65
FuncType 33
Class 4
Route 1

Languages

Go100%
Java1%
Python1%

Modules by API surface

pkg/model/serializer.go90 symbols
pkg/model/stack.go75 symbols
pkg/model/stack_serializer.go72 symbols
cmd/deploy/deploy_test.go72 symbols
pkg/model/dev.go67 symbols
pkg/analytics/posthog_test.go66 symbols
pkg/model/manifest.go54 symbols
pkg/types/interface.go52 symbols
pkg/syncthing/syncthing.go51 symbols
pkg/okteto/preview.go49 symbols
pkg/cmd/stack/translate.go48 symbols
pkg/repository/git.go46 symbols

Dependencies from manifests, versioned

al.essio.dev/pkg/shellescapev1.6.0 · 1×
cel.dev/exprv0.25.1 · 1×
cloud.google.com/gov0.123.0 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
cloud.google.com/go/monitoringv1.24.3 · 1×
cloud.google.com/go/storagev1.61.3 · 1×
dario.cat/mergov1.0.2 · 1×
github.com/Azure/go-ansitermv0.0.0-2025010203350 · 1×
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcpv1.31.0 · 1×

For agents

$ claude mcp add okteto \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact