Reputation: 76
Create an External Ingress for a service like the one below.
Everything gets created but without the behavior I expect.
apiVersion: "extensions/v1beta1"
kind: "Ingress"
metadata:
annotations:
kubernetes.io/ingress.allow-http: false
kubernetes.io/ingress.global-static-ip-name: "my-ingress-ip"
labels:
app.kubernetes.io/instance: "my-service-api"
app.kubernetes.io/managed-by: "pulumi"
app.kubernetes.io/name: "my-service-api"
app.kubernetes.io/version: "1.0.0-service"
helm.sh/chart: "service-0.1.0"
name: "my-service-api-proxy"
namespace: "load-test"
spec:
backend:
serviceName: "my-service-api-proxy"
servicePort: 80
tls:
- secretName: "my-tls-secret-cert"
As soon as I remove the kubernetes.io/ingress.allow-http annotation, the ingress picks up my global IP.
Has anyone ran into this issue when creating an Ingress with a global IP and HTTPS only access?
GKE version: 1.18.16-gke.2100
Node Config:
Kernel version 5.4.89+
OS image Container-Optimized OS from Google
Container runtime version docker://19.3.14
kubelet version v1.18.16-gke.2100
kube-proxy version v1.18.16-gke.2100
Upvotes: 0
Views: 69
Reputation: 76
This works, remember to use quotes on all annotation values since they are strings.
apiVersion: "extensions/v1beta1"
kind: "Ingress"
metadata:
annotations:
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.global-static-ip-name: "my-ingress-ip"
labels:
app.kubernetes.io/instance: "my-service-api"
app.kubernetes.io/managed-by: "pulumi"
app.kubernetes.io/name: "my-service-api"
app.kubernetes.io/version: "1.0.0-service"
helm.sh/chart: "service-0.1.0"
name: "my-service-api-proxy"
namespace: "load-test"
spec:
backend:
serviceName: "my-service-api-proxy"
servicePort: 80
tls:
- secretName: "my-tls-secret-cert"
Also if you are updating an existing Ingress, give it a few minutes (like 10) for it to pick up the changes
Upvotes: 1