hello all, This is definitely something super silly I am doing, but I cannot figure out what I am doing wrong for the life of me
so I have the following aliases set up
alias doyaml=" --dry-run=client -oyaml"
now I do
k run nginx-pod --image=nginx:alpine doyaml > nginx-pod.yaml
and when I open the
nginx-pod.yaml I see the result in it which is
However when I do
k run nginx-pod --image=nginx:alpine --dry-run=client -oyaml > nginx-pod.yaml
The correct yaml pod spec is created.
I do not understand why the alias doyaml does not seem to work in the first case? Appreciate if anyone can enlighten me! Thanks
@Sudi Krishnakumar you need to do it a a shell variable
export doyaml='--dry-run=client -o yaml'
k run nginx-pod --image=nginx:alpine $doyaml > nginx-pod.yaml
$ to expand the shell variable
Save yourself extra typing by simply calling it
y instead of
Does this mean we need to always use export instead of Alias directly?
export and alias are different things.
alias creates an alias for a runnable command (optionally with some of its arguments)
export creates a shell variable which is visible to any program or subshell you run from the terminal.
--dry-run-client -o yaml is not a command in its own right, therefore we use a shell variable for it which can be expanded in the context of a longer command line. So
export y='--dry-run=client -o yaml`
k run nginx-pod --image=nginx:alpine $y > nginx-pod.yaml
k is an alias. Note that it is pre-existing in the exam so you don’t have to create it.
y is a shell variable. Note the use of quotes above. This is necessary since the value includes spaces.
The shell therefore interprets the above as
kubectl run nginx-pod --image=nginx:alpine --dry-run=client -o yaml > nginx-pod.yaml
This is basic Linux stuff. Anyone doing Kubernetes is recommended to also do a basic Linux course, like https://kodekloud.com/courses/the-linux-basics-course/
A good alias to create is this
alias kgp='kubectl get pods'
Then you can do
kgp -o wide
alias kcn='kubectl config set-context --curreent --namespace'
Time savers in exam!