** Please be patient while the chart is being deployed **

The nginx-ingress controller has been installed.

Get the application URL by running these commands:

{{- $httpPort := .Values.service.ports.http | toString }}
{{- $httpsPort := .Values.service.ports.https | toString }}

{{- if contains "NodePort" .Values.service.type }}
{{- if (not (empty .Values.service.nodePorts.http)) }}
    export HTTP_NODE_PORT={{ .Values.service.nodePorts.http }}
{{- else }}
    export HTTP_NODE_PORT=$(kubectl --namespace {{ .Release.Namespace }} get services -o jsonpath="{.spec.ports[0].nodePort}" {{ template "common.names.fullname" . }})
{{- end }}
{{- if (not (empty .Values.service.nodePorts.https)) }}
    export HTTPS_NODE_PORT={{ .Values.service.nodePorts.https }}
{{- else }}
    export HTTPS_NODE_PORT=$(kubectl --namespace {{ .Release.Namespace }} get services -o jsonpath="{.spec.ports[1].nodePort}" {{ template "common.names.fullname" . }})
{{- end }}
    export NODE_IP=$(kubectl --namespace {{ .Release.Namespace }} get nodes -o jsonpath="{.items[0].status.addresses[1].address}")

    echo "Visit http://$NODE_IP:$HTTP_NODE_PORT to access your application via HTTP."
    echo "Visit https://$NODE_IP:$HTTPS_NODE_PORT to access your application via HTTPS."

{{- else if contains "LoadBalancer" .Values.service.type }}

 NOTE: It may take a few minutes for the LoadBalancer IP to be available.
        You can watch its status by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "common.names.fullname" . }}'

    export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "common.names.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
    echo "Visit http://${SERVICE_IP}{{- if ne $httpPort "80" }}:{{ $httpPort }}{{ end }} to access your application via HTTP."
    echo "Visit https://${SERVICE_IP}{{- if ne $httpsPort "443" }}:{{ $httpsPort }}{{ end }} to access your application via HTTPS."

{{- else if contains "ClusterIP"  .Values.service.type }}

    kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "common.names.fullname" . }} ${SERVICE_PORT}:${SERVICE_PORT} &
    echo "Visit http://127.0.0.1:{{- if ne $httpPort "80" }}:{{ $httpPort }}{{ end }}to access your application via HTTP."
    echo "Visit https://127.0.0.1:{{- if ne $httpsPort "443" }}:{{ $httpsPort }}{{ end }} to access your application via HTTPS."

{{- end }}

An example Ingress that makes use of the controller:

  apiVersion: networking.k8s.io/v1
  kind: Ingress
  metadata:
    annotations:
      kubernetes.io/ingress.class: {{ .Values.ingressClass }}
    name: example
    namespace: foo
  spec:
    rules:
      - host: www.example.com
        http:
          paths:
            - backend:
                service:
                  name: exampleService
                  port:
                    number: 80
              path: /
              pathType: Prefix
    # This section is only required if TLS is to be enabled for the Ingress
    tls:
        - hosts:
            - www.example.com
          secretName: example-tls

If TLS is enabled for the Ingress, a Secret containing the certificate and key must also be provided:

  apiVersion: v1
  kind: Secret
  metadata:
    name: example-tls
    namespace: foo
  data:
    tls.crt: <base64 encoded cert>
    tls.key: <base64 encoded key>
  type: kubernetes.io/tls

{{- if .Values.headers }}
#################################################################################
######   WARNING: `controller.headers` has been deprecated!                 #####
######            It has been renamed to `controller.proxySetHeaders`.      #####
#################################################################################
{{- end }}

{{- include "common.warnings.rollingTag" .Values.image }}
{{- include "common.warnings.rollingTag" .Values.defaultBackend.image }}
