Skip to main content
Version: 1.28

Deploy your application

For this tutorial, you will be using our getting started sample app. Start by cloning the following repo:

git clone https://github.com/okteto/getting-started
cd getting-started

The Movies app comes with a Helm chart to deploy the application on Kubernetes. To instruct Okteto to deploy the Movies app, create an okteto.yaml file at the root of the repo with the following content:

okteto.yaml
deploy:
- name: Helm Install
command: helm upgrade --install movies chart

The meaning of these fields is:

  • deploy: it's a list of commands to deploy your application. Every command has the following fields:
    • name: a name to label your command
    • command: the command to be executed

Now deploy the Movies app by running the following command:

okteto deploy
 i  Using cindy @ okteto.example.com as context
i Running 'Helm Install'
Release "movies" does not exist. Installing it now.
NAME: movies
LAST DEPLOYED: Fri Jan 19 23:54:00 2024
NAMESPACE: cindy
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
Success! Your application will be available shortly.
i There are no available endpoints for 'movies'.
Follow this link to know more about how to create public endpoints for your application:
https://www.okteto.com/docs/core/ingress/automatic-ssl
✓ Development environment 'movies' successfully deployed

Confirm that the Movies app is up and running by logging into the Okteto UI:

Movies Onboard Deploy

Or by configuring your Kubernetes credentials to access your Development Environment:

okteto kubeconfig
Updated kubernetes context 'okteto_example_com/cindy' in '[/Users/cindy/.kube/config]'

And using kubectl to visualize how your Development Environment looks in Kubernetes:

kubectl get all
NAME                          READY   STATUS    RESTARTS   AGE
pod/api-689448db78-flf7j 1/1 Running 0 2m12s
pod/frontend-d564c895-tvg65 1/1 Running 0 2m12s
pod/seed-djt25 1/1 Running 0 2m11s

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/api ClusterIP 10.7.255.99 <none> 8080/TCP 2m13s
service/frontend ClusterIP 10.7.246.60 <none> 80/TCP 2m13s

NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/api 1/1 1 1 2m13s
deployment.apps/frontend 1/1 1 1 2m13s

NAME DESIRED CURRENT READY AGE
replicaset.apps/api-689448db78 1 1 1 2m13s
replicaset.apps/frontend-d564c895 1 1 1 2m13s

NAME COMPLETIONS DURATION AGE
job.batch/seed 0/1 2m13s 2m13s

Next Steps

Awesome, you have deployed the Movies app to Okteto 🚀

Looks like there is still an issue with the Movies app. The seed job keeps processing, and if you check the logs of the api Kubernetes Deployment:

okteto logs api
 i  Using cindy @ okteto.example.com as context
api-646fdf88d6-267sn › api
api-646fdf88d6-267sn api yarn run v1.22.19
api-646fdf88d6-267sn api $ nodemon server.js
api-646fdf88d6-267sn api [nodemon] 2.0.4
api-646fdf88d6-267sn api [nodemon] to restart at any time, enter `rs`
api-646fdf88d6-267sn api [nodemon] watching path(s): *.*
api-646fdf88d6-267sn api [nodemon] watching extensions: js,mjs,json
api-646fdf88d6-267sn api [nodemon] starting `node server.js`
api-646fdf88d6-267sn api Error connecting, retrying in 1 sec: MongoServerSelectionError: getaddrinfo ENOTFOUND mongodb
api-646fdf88d6-267sn api Error connecting, retrying in 1 sec: MongoServerSelectionError: getaddrinfo ENOTFOUND mongodb
...

Or from the Okteto UI, you can see that the api is failing to connect to MongoDB... This is expected because you didn't deploy a MongoDB instance yet, let's configure the MongoDB dependency in the next step of this guide 😎