.catalog:
  name: traefik
  version: v1.1.1-rancher1
  description: |
    (Experimental) Traefik load balancer.
  minimum_rancher_version: v0.59.0
  maintainer: "Raul Sanchez <rawmind@gmail.com>"
  uuid: traefik-0
  questions:
    - variable: "host_label"
      description: "Host label where to run traefik service."
      label: "Host label:"
      required: true
      default: "traefik_lb=true" 
      type: "string"
    - variable: "http_port"
      description: "Traefik http public port to listen."
      label: "Http port:"
      required: true
      default: 8080
      type: "int"
    - variable: "https_port"
      description: "Traefik https public port to listen."
      label: "Https port:"
      required: true
      default: 8443
      type: "int"
    - variable: "admin_port"
      description: "Traefik admin public port to listen."
      label: "Admin port:"
      required: true
      default: 8000 
      type: "int"
    - variable: "https_enable"
      label: "Enable HTTPS:"
      description: |
        Enable https working mode. If you activate, you need to fill SSL key and SSL crt in order to work.
      default: false
      required: true
      type: enum
      options:
        - false
        - true
        - only
    - variable: "acme_enable"
      description: "Enable acme support on traefik."
      label: "Enable ACME:"
      required: true
      default: false 
      type: "boolean"
    - variable: "acme_email"
      description: "ACME user email."
      label: "ACME email:"
      required: true
      default: "test@traefik.io" 
      type: "string"
    - variable: "acme_ondemand"
      description: "Enable acme ondemand."
      label: "ACME ondemand:"
      required: true
      default: true 
      type: "boolean"
    - variable: "acme_onhostrule"
      description: "Enable acme onHostRule."
      label: "ACME onHostRule:"
      required: true
      default: true 
      type: "boolean"
    - variable: "ssl_key"
      description: "SSL key to secure the service. *Required if you enable https"
      label: "SSL key"
      type: "multiline"
      required: false
      default: ""
    - variable: "ssl_crt"
      description: "SSL cert to secure the service. *Required if you enable https"
      label: "SSL crt"
      type: "multiline"
      required: false
      default: ""
    - variable: "refresh_interval"
      description: "Interval to poll/apply configuration changes." 
      label: "Refresh Interval (s):"
      required: true
      default: 10 
      type: "int"
traefik:
  retain_ip: true
  health_check:
    port: 8000
    interval: 5000
    unhealthy_threshold: 3
    request_line: 'GET /dashboard/# HTTP/1.0'
    healthy_threshold: 2
    response_timeout: 5000
  metadata:
    traefik:
      ssl_key: |
        ${ssl_key}
      ssl_crt: |
        ${ssl_crt}
