I have a k8s cluster created via terraform on openstack, while creating cluster we have created ingress controller resource using below code:
resource "null_resource" "create_ingress_controller" {
provisioner "remote-exec" {
connection {
host = "${openstack_compute_instance_v2.master.access_ip_v4}"
user = "root"
private_key = "${file(var.ssh_key_file)}"
}
inline = [
"helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx"
]
}
Now a springboot service is deployed to this cluster using helmchart. This service is having following ingress resource:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .Values.componentName }}-ingress
labels:
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: "{{ .Values.appBaseUri }}"
pathType: Prefix
backend:
service:
name: {{ .Values.componentName }}-service
port:
number: {{ .Values.servicePort }}
host: {{ .Values.ingressDomain }}
- http:
paths:
- path: "{{ .Values.appBaseUri }}/healthcheck"
pathType: Prefix
backend:
service:
name: {{ .Values.componentName }}-service
port:
number: {{ .Values.healthcheckPort }}
host: {{ .Values.ingressDomain }}
Ideally when we call this api, it nginx should connect to port 80 but it keeps connecting to 443 port intermittently and sometime it connects to port 80.