1

I have a baremetal K8 cluster setup using Kubespray (Calico as CNI) and have dual stack enabled. I can see that all the pods that get deployed get both IPv4 and IPv6 addresses but when I try to install nginx-ingress controller using nginx helm chart the services only have IPv4 enabled and assigned. I can see the following spec when I do kubectl get on the service:

kubectl get svc ingress-nginx-controller -n ingress-nginx -o yaml

spec:
  clusterIP: 10.233.34.249
  clusterIPs:
  - 10.233.34.249
  externalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack

I've tried manually adding the following spec to values.yaml file for ingress-controller helm chart:

  service:
    enabled: true

    annotations: {}
    labels: {}
    # clusterIP: ""

    ## List of IP addresses at which the controller services are available
    ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
    ##

    ipFamilyPolicy: PreferDualStack
    ipFamilies:
     - IPv6
     - IPv4

and applying it using the following but to no avail : helm install ingress-nginx ingress-nginx/ingress-nginx -f values.yaml -n ingress-nginx

Its not only an issue with ingress, basically any application that I'm trying to deploy using helm charts have Single Stack and IPv4 as specs for services which makes me think that I'm missing some manual config required in values files for these charts.

Also when I tried to create a basic service and deployed it using a service file directly with the ipFamilyPolicy: PreferDualStack and ipFamilies: IPv6, IPv4 then the service was deployed successfully and got both v6 and v4 addresses assigned. So I know from a cluster perspective my config is fine and its some missing parameter with the charts being deployed.

mickey9
  • 11
  • 1

0 Answers0