Getting Started on Okteto Cloud with Ruby
Okteto Cloud gives instant access to secure Kubernetes namespaces to enable developers to code, build, and run Kubernetes applications entirely in the cloud.
This tutorial will show you how to create an account in Okteto Cloud and how to develop a Ruby sample applicatio.
Prerequisites
- Install the Okteto CLI. Follow this guide if you haven't done it yet.
- Configure Access to your Okteto Cloud Namespace using the Okteto CLI or using the Okteto Cloud UI.
Step 1: Deploy the Ruby Sample App
Get a local version of the Ruby Sample App by executing the following commands:
$ git clone https://github.com/okteto/ruby-getting-started$ cd ruby-getting-started
The k8s.yml
file contains the Kubernetes manifests of the Ruby Sample App. Deploy a dev version of the application by executing:
$ kubectl apply -f k8s.yml
deployment.apps "hello-world" createdservice "hello-world" created
Open your browser and go to the URL of the application. You can get the URL by logging into Okteto Cloud and clicking on the application's endpoint:

Did you notice that you are accessing your application through an HTTPs endpoint? This is because Okteto Cloud will automatically create them for you when you deploy your application. Cool no ๐?
Step 2: Activate your development container
With the Ruby Sample Application deployed, run the following command:
$ okteto up
โ Development container activated โ Files synchronized Namespace: cindy Name: hello-world Forward: 8080 -> 8080 1234 -> 1234
Welcome to your development container. Happy coding!okteto>
The okteto up
command starts a development container, which means:
- The Ruby Sample App container is updated with the docker image
okteto/hello-world:ruby-dev
. This image contains the required dev tools to build, test, debug and run a Ruby application. Check the Dockerfile to see how it is generated. - A file synchronization service is created to keep your changes up-to-date between your local filesystem and your development container.
- Container ports 8080 (the application) and 1234 (the debugger) are forwarded to localhost.
- A remote shell is started in your development container. Build, test and run your application as if you were in your local machine.
All of this (and more) can be customized via the
okteto.yml
manifest file. You can also use the file.stignore
to skip files from file synchronization. This is useful to avoid synchronizingvendor
dependencies or git metadata.
Working in your development container is the same as working on your local machine. Start the application in hot-reload mode by running the following command:
okteto> ruby app.rb
[2020-03-20 09:23:04] INFO WEBrick 1.6.0[2020-03-20 09:23:04] INFO ruby 2.7.0 (2019-12-25) [x86_64-linux]== Sinatra (v2.0.8.1) has taken the stage on 8080 for development with backup from WEBrick[2020-03-20 09:23:04] INFO WEBrick::HTTPServer#start: pid=66 port=8080
Step 3: Develop directly in Okteto Cloud
Open the app.rb
file in your favorite local IDE and modify the response message on line 7 to be Hello world from the cluster!. Save your changes.
get "/" do message = "Hello world from the cluster!" messageend
Okteto will synchronize your changes to your development container in Kubernetes and Sinatra automatically detects them and reloads your application.
Go back to the browser and reload the page. Your code changes were instantly applied. No commit, build or push required ๐!
Step 4: Debug directly in Okteto Cloud
Okteto enables you to debug your applications directly from your favorite IDE. Let's take a look at how that works in VS Code, one of the most popular IDEs for Ruby development. If you haven't done it yet, install the Ruby extension available from Visual Studio marketplace. This extension comes with debug definitions covering the default ruby-debug-ide
client setup.
Now, cancel the execution of ruby app.rb
from the development container shell by pressing ctrl + c
. Rerun your application in debug mode:
okteto> rdebug-ide --host 0.0.0.0 app.rb
Fast Debugger (ruby-debug-ide 0.7.0, debase 0.2.4.1, file filtering is supported) listens on 0.0.0.0:1234
Open the Run view in VS Code and run the Connect to okteto debug configuration (or press the F5 shortcut):
{ "version": "0.2.0", "configurations": [ { "name": "Connect to okteto", "type": "Ruby", "request": "attach", "remotePort": "1234", "remoteHost": "localhost", "remoteWorkspaceRoot": "/app", "cwd": "${workspaceRoot}", } ]}
Add a breakpoint on app.rb
, line 8. Go back to the browser, and reload the page. The execution will halt at your breakpoint. You can then inspect the request, the available variables, etc...

Your code is executing in Okteto Cloud, but you can debug it from your local machine without any extra services or tools. Pretty cool no? ๐
Step 5: Redeploy the Ruby Sample App
Once you are happy with your changes, exit your development container with ctrl + c
+ ctrl + d
.
If you want to keep your changes running, execute the following command in your local shell:
$ okteto push
i Running your build in Okteto Cloud[+] Building 16.0s (16/16)... โ Source code pushed to 'hello-world'
okteto push
automatically builds a new image tag using the Okteto Build Service, pushes it to the Okteto Registry and redeploys your application with the new image tag ๐ฅ!
Alternatively, you can also rollback the Ruby Sample App to its original state (the one before running okteto up
) by executing:
$ okteto down
โ Development container deactivated
Next steps
Congratulations, you just developed your first application in Okteto Cloud ๐.
Okteto lets you develop your applications directly in Kubernetes. This way you can:
- Eliminate integration issues by developing in a realistic environment
- Test your application end to end as fast as you type code
- No more CPU cycles wasted in your machine. Develop at the speed of the cloud!
Okteto uses the okteto.yml
file to determine the name of your development container, the docker image to use and where to upload your code. Check the Okteto manifest docs to customize your development containers with your own dev tools, images, and dependencies to adapt Okteto to your own application.
Ready to develop your application on Okteto Cloud? Read our step by step tutorial on how to configure an Okteto Pipeline to deploy realistic environments for your application in just one click.
Find more advanced samples with Okteto in this repository or join our #okteto channel in the Kubernetes community Slack to make questions or share your feedback.