Run istioctl alongside kubectl under fish shell

6/1/2017

I've just had a try with istio on my kubernetes cluster

However, i got some hiccup on setting up bookinfo sample app. This command ran perfectly fine under bash shell, but not fish:

kubectl apply -f <(istioctl kube-inject -f samples/apps/bookinfo/bookinfo.yaml)

I got this error:

Invalid redirection target: < (istioctl kube-inject -f samples/apps/bookinfo/bookinfo.yaml)

Any idea on this one? Thanks!

-- Tommy Nguyen
fish
istio
kubectl
kubernetes
shell

2 Answers

6/1/2017

Fish does not support that process substitution syntax. We do provide an alternative although it isn't perfect. See help psub from a fish prompt. If kubectl recognizes the idiom of - to mean read from stdin I would recommend rewriting that as

istioctl kube-inject -f samples/apps/bookinfo/bookinfo.yaml | kubectl apply -f -

as proposed by @Tuannvm. Frankly, I would recommend that variant as the canonical way to perform that operation as the <(a_command) syntax isn't needed AFAICT. There may be some strange situation where it is helpful but I can't think of one off the top of my head and I've been using UNIX for more than 30 years.

-- Kurtis Rader
Source: StackOverflow

6/1/2017

Although there's an alternate way to do that:

istioctl kube-inject -f samples/apps/bookinfo/bookinfo.yaml | kubectl apply -f -

But it's more convenient for new user if they just need to copy/paste the commands.

-- Tommy Nguyen
Source: StackOverflow