Looking at the Service spec, the external IP field is generated correctly. Could you confirm that you at least get the correct config using manifest generate?
Yes , I was able to get the output of the gerate command.
istioctl manifest generate -f demo-nw.yaml | grep 1.2.3.4
proto: tag has too few fields: “-”
loadBalancerIP: 1.2.3.4
So ,this is the yaml (modified demo profile values ) i am using .
pilot:
autoscaleEnabled: false
mixer:
adapters:
useAdapterCRDs: false
kubernetesenv:
enabled: true
prometheus:
enabled: true
metricsExpiryDuration: 10m
stackdriver:
enabled: false
stdio:
enabled: true
outputAsJson: false
policy:
autoscaleEnabled: false
telemetry:
autoscaleEnabled: false
gateways:
istio-egressgateway:
autoscaleEnabled: false
istio-ingressgateway:
autoscaleEnabled: false
ports:
## You can add custom gateway ports in user values overrides, but it must include those ports since helm replaces.
# Note that AWS ELB will by default perform health checks on the first port
# on this list. Setting this to the health check port will ensure that health
# checks always work. https://github.com/istio/istio/issues/12503
- port: 443
nodePort: 31390
name: https
# protocol: TCP
targetPort: 443
- port: 80
nodePort: 31380
name: http2
# protocol: TCP
targetPort: 80
- port: 31400
name: tcp
nodePort: 31400
# protocol: TCP
targetPort: 31400
- port: 15011
nodePort: 31167
name: tcp-pilot-grpc-tls
# protocol: TCP
targetPort: 15011
- port: 8060
targetPort: 8060
name: tcp-citadel-grpc-tls
nodePort: 31795
# protocol: TCP
secretVolumes:
- name: ingressgateway-certs
secretName: istio-ingressgateway-certs
mountPath: /etc/istio/ingressgateway-certs
- name: ingressgateway-ca-certs
secretName: istio-ingressgateway-ca-certs
mountPath: /etc/istio/ingressgateway-ca-certs
kiali:
createDemoSecret: true
Once these values are in place I am trying to install istio itself from the istioctl commands using this values.
istioctl manifest apply --set installPackagePath=/home/istio-1.5.0/install/kubernetes/operator/charts --set profile=/home/istio-1.5.0/install/kubernetes/operator/profiles/demo-custom.yaml
.End result it should ideally assign the load balancer to the internal ip with 1.2.3.4 but its not happening.It is still showing pending .
kubectl get svc -n istio-system
istio-ingressgateway LoadBalancer x.x.x.x 443:31390/TCP,80:31380/TCP,31400:31400/TCP,15011:31167/TCP,8060:31795/TCP 100m
1)Please let me know in case the yaml place holder is not correct for load balancer ip field
2)If not 1 ,then what is the correct procedure to assign an internal ip to laod balancer (istio-ingress gateway)
try to add the internaIP to the global Values section
…
gateways:
…
istio-ingressgateway:
type: LoadBalancer
serviceAnnotations: cloud.google.com/load-balancer-type: “internal”
loadBalancerIP: 1.2.3.4