Polyaxon provides support for an Ingress resource compatible with the NGINX stable helm chart or a customized NGINX ingress controller.

Install Nginx Ingress

In order to use NGINX Ingress controller with Polyaxon, you need install the controller w/o RBAC depending on your cluster:

helm install -n polyaxon --name=nginx stable/nginx-ingress

Enable ingress in your Polyaxon's config deployment

ingress:
  enabled: true

[Optional] Set a host name

ingress:
  enabled: true
  hostName: polyaxon.acme.com

[Optional] Set tls to serve Polyaxon on HTTPS

ingress:
  enabled: true
  hostName: polyaxon.acme.com
  tls: 
  - secretName: polyaxon.acme-tls
    hosts:
      - polyaxon.acme.com

Annotations

Polyaxon's ingress resource can be customized by providing annotations, we recommend the following annotations

ingress:
  annotations:
      ingress.kubernetes.io/rewrite-target: /
      ingress.kubernetes.io/add-base-url: "true"

If you are using the ingress without a tls, you need to set

ingress:
  annotations:
    ingress.kubernetes.io/ssl-redirect: "false"

Also to allow the platform to upload/download large files you need to

ingress:
  annotations:
    ingress.kubernetes.io/proxy-connect-timeout: "600"
    ingress.kubernetes.io/proxy-read-timeout: "600"
    ingress.kubernetes.io/proxy-send-timeout: "600"
    ingress.kubernetes.io/send-timeout: "600"
    ingress.kubernetes.io/proxy-body-size: 4G

ConfigMap for the controller

In addition to the previous annotations, you might need to update the controller's config map:

data:
  ssl-redirect: "false"