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:
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 commandcommand
: 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:
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:
```bash
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 😎