1

I'm trying to connect an external webflow page to our kubernetes cluster ingress on GCP GKE. Specifically, I want everything at www.domain.com to go to the external webflow service, and everything at www.domain.com/app to go to our local service in the cluster.

I've seen this question Ingress Nginx Proxy to Outside Website (Webflow hosted) and followed it, but I couldn't get it working. I keep getting an error Translation failed: invalid ingress spec: service "default/external-service" is type "ExternalName", expected "NodePort" or "LoadBalancer"; service "default/external-service" is type "ExternalName", expected "NodePort" or "LoadBalancer"

Here's my setup

External Service:

apiVersion: v1
kind: Service
metadata:
  name: external-service
  namespace: default
spec:
  externalName: participant-homepage-9f8712.webflow.io
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  sessionAffinity: None
  type: ExternalName
status:
  loadBalancer: {}

Ingress:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.gcp.kubernetes.io/pre-shared-cert: _,
    ingress.kubernetes.io/backends: _,
    ingress.kubernetes.io/forwarding-rule: _,
    ingress.kubernetes.io/https-forwarding-rule: _,
    ingress.kubernetes.io/https-target-proxy: _,
    ingress.kubernetes.io/preserve-host: "false"
    ingress.kubernetes.io/secure-backends: "true"
    ingress.kubernetes.io/ssl-cert: _,
    ingress.kubernetes.io/static-ip: _,
    ingress.kubernetes.io/target-proxy: _,
    ingress.kubernetes.io/url-map: _,
    networking.gke.io/managed-certificates: _,
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS
    nginx.ingress.kubernetes.io/server-snippet: |
      proxy_ssl_name participant-homepage-9f8712.webflow.io;
      proxy_ssl_server_name on;
    nginx.ingress.kubernetes.io/upstream-vhost: participant-homepage-9f8712.webflow.io
  name: my-ingress
  namespace: default
spec:
  backend:
    serviceName: external-service
    servicePort: 443
  rules:
  - host: www.honeybeehub.xyz
    http:
      paths:
      - backend:
          serviceName: app-service
          servicePort: 80
        path: /app/*
        pathType: ImplementationSpecific
      - backend:
          serviceName: external-service
          servicePort: 443
        path: /*
        pathType: ImplementationSpecific
status:
  loadBalancer:
    ingress:
    - ip: _._._._

Any help would be greatly appreciated. Thank you!

wei
  • 557
  • 1
  • 10
  • 24

1 Answers1

1

The reason why the steps on the question you quoted Ingress Nginx Proxy to Outside Website (Webflow hosted) are not working, is because that question focuses on EKS (Amazon Elastic Kubernetes Service). ExternalName Services are not supported in GCE Ingress, as you can see in the following question. What I can recommend to you is to post it as a Feature Request on the Google's Issue tracker