A quick tip and bit of code: if you’re outputting a lot of Kubernetes metadata using the --show-labels
command, it can feel like looking for a needle in a haystack. The snippet below colorizes key label outputs to make them stand out.
The Code Snippet
When working with Kubernetes, it can be helpful to visually scan for certain node labels—such as service.cilium.io/node=...
or custom readiness flags like ingress-ready=true
. Using a simple awk
script, we can colorize these labels directly in our terminal output. This script uses ANSI escape codes to wrap matched text in color and awk
’s gsub()
function to apply substitutions line by line. It’s a lightweight and effective way to highlight key data points in otherwise dense CLI output.
kubectl get ciliumnodes --show-labels | awk '
BEGIN {
color_start = "\033[1;36m"; # cyan
color_end = "\033[0m";
}
{
gsub(/service\.cilium\.io\/node=[^, ]+/, color_start "&" color_end);
gsub(/ingress-ready=true/, color_start "&" color_end);
print
}'
Screenshot Example
Breakdown of the Code
We pipe the output of the kubectl
command to awk
. The BEGIN
block sets up the ANSI color codes used for matching patterns.
\033[1;36m
is an ANSI escape code that starts cyan-colored text.\033[0m
resets the text color back to normal.
gsub(...)
These two lines apply substitutions to each input line:
gsub()
is a global substitution function that replaces all matches in the line.service\.cilium\.io\/node=[^, ]+
matches a full key-value pair likeservice.cilium.io/node=mynode
[^, ]+
grabs the node value until the next comma or spaceingress-ready=true
matches the exact label string&
refers to the entire matched string, which we wrap in color codes
print
This prints the modified line after substitutions are applied.
Customize the Highlight Color
You can change \033[1;36m
to another color code:
- Red:
\033[1;31m
- Green:
\033[1;32m
- Yellow:
\033[1;33m
- Blue:
\033[1;34m
- Magenta:
\033[1;35m
A Final Note on sub()
vs gsub()
sub()
replaces only the first occurrence of the regex in the linegsub()
replaces all occurrences of the regex in the line
Regards