<p>I'm having difficulties getting my Ingress controller running on Google Container Engine. I want to use an NGINX Ingress Controller with Basic Auth and use a reserved global static ip name (this can be made in the External IP addresses section in the Google Cloud Admin interface). When I use the gce class everything works fine except for the Basic Auth (which I think is not supported on the gce class), anenter code hered when I try to use the nginx class the Ingress Controller launches but the IP address that I reserved in the Google Cloud Admin interface will not be attached to the Ingress Controller. Does anyone know how to get this working? Here is my config file:</p>

<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: webserver
  annotations:
    kubernetes.io/ingress.global-static-ip-name: "myreservedipname"
    kubernetes.io/ingress.class: "nginx"
    ingress.kubernetes.io/auth-type: basic
    ingress.kubernetes.io/auth-realm: "Auth required"
    ingress.kubernetes.io/auth-secret: htpasswd
spec:
  tls:
    - secretName: tls
  backend:
    serviceName: webserver
    servicePort: 80
</code></pre>

<p>I found a solution with helm.</p>

<pre><code>helm install --name nginx-ingress stable/nginx-ingress \
      --set controller.service.loadBalancerIP=&lt;YOUR_EXTERNAL_IP&gt;
</code></pre>

<p>You should use the <code>external-ip</code> and not the name you gave with gcloud.</p>

<p>Also, in my case I also added <code>--set rbac.create=true</code> for permissions.</p>
