Automatic SSL Endpoints
Okteto Cloud can automatically create an SSL endpoint for your deployments. In order to take advantage of this feature, add the annotation below to your service's manifest:
dev.okteto.com/auto-ingress: "true"
For example:
apiVersion: v1
kind: Service
metadata:
name: hello-world
labels:
app: hello-world
annotations:
dev.okteto.com/auto-ingress: "true"
spec:
type: ClusterIP
ports:
- port: 8080
protocol: TCP
targetPort: 8080
selector:
app: hello-world
A sample of how this should look is available here.
Adding this annotation will tell Okteto to automatically create an https ingress rule for you that redirects to the first http port of your service. NodePort
or LoadBalancer
services are managed as if they had this annotation too.
You can see the address of your endpoint by going to Okteto Cloud's UI. The endpoint address will be consistent across redeploys, as long as you don't change your service name.
Bring your own ingress
You can also use your own ingress manifests. This is useful when you have more complex configurations, or you need specific URLs.
Keep in mind that all the hosts you use in your ingress must end with-$NAMESPACE.cloud.okteto.net
.
Let Okteto generate the host
Okteto Cloud can automatically inject the right host names during the creation of your ingresses, while leaving the rest of the configuration intact. In order to take advantage of this feature, add the annotation below to your ingress' manifest.
dev.okteto.com/generate-host: "true"
Full example:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
dev.okteto.com/generate-host: "true"
name: hello-world
spec:
rules:
- http:
paths:
- backend:
serviceName: hello-world
servicePort: 8080
path: /
We recommend you follow this option. This way your ingress configuration can be deployed on any Okteto Cloud namespace.
Customizing the endpoints shown in the Okteto UI
Okteto provides additional annotations that enable you to customize the endpoints shown in the Okteto UI.
To hide specific endpoints from the Okteto UI, you can use the dev.okteto.com/hide-from-ui: true
annotation.
Simply apply this annotation to your Ingress
or VirtualService
resource, and the endpoints associated with that resource will not be displayed in the Okteto UI.
If you want to replace the default endpoints for an Ingress
or VirtualService
resource, you can use the dev.okteto.com/endpoints
annotation.
This annotation allows you to define a list of endpoints, separated by commas, that will replace the default endpoints.
Additionally, the value of this annotation expands the OKTETO_NAMESPACE
and OKTETO_DOMAIN
environment variables, providing an easy way to make your endpoints portable between namespaces.
- Kubernetes
- Compose
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: movies
annotations:
dev.okteto.com/generate-host: "true"
dev.okteto.com/endpoints: https://movies-${OKTETO_NAMESPACE}.${OKTETO_DOMAIN}
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: frontend
port:
number: 80
- path: /api
pathType: Prefix
backend:
service:
name: api
port:
number: 8080
endpoints:
labels:
dev.okteto.com/endpoints: https://movies-${OKTETO_NAMESPACE}.${OKTETO_DOMAIN}
rules:
- path: /
service: frontend
port: 80
- path: /api
service: backend
port: 8080