You could try passing an overlay file instead of using --set - escaping in the command line can be tricky, it’s much cleaner to create a yaml file. @esnible can comment further on --set.
I have success with istioctl manifest generate --set 'values.gateways.istio-ingressgateway.serviceAnnotations.service\.beta\.kubernetes\.io/aws-load-balancer-internal=0.0.0.0/0'
I am using OSX, with $BASH_VERSION 3.2.57(1)-release.
The single quotes keep Bash from eating the backslashes. (Tested under my personal build of what will be 1.5.1 and under my build of 1.6.x.)
I’m also using OSX tried with zsh and bash version 4.4.19(1)-release. My manifest generate looks like: istioctl manifest generate --set profile=default --set ‘values.gateways.istio-ingressgateway.serviceAnnotations.service.beta.kubernetes.io/aws-load-balancer-internal=0.0.0.0/0’ > test.yaml
But when I check my test.yaml file I see:
apiVersion: v1*
kind: Service
metadata:
name: istio-ingressgateway
namespace: istio-system
annotations:
service: “map[beta\:map[kubernetes\:map[io/aws-load-balancer-internal:0.0.0.0/0]]]”
Hi @ed.snible, in my case, I want to setup two ingress gateway, one is for public, the other one is for internal. The internal ingress gw should have the service annotation as you AWS suggest, service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0. But your customization in the values.gateway.istio-ingressgateway seems will overwrite the svc annotation for both of them. How do I specify for separately for both public and internal ingress gateway?