<p>I have to check if my application container in a replication controller runs on a certain port. Here is the command with the go template string that I'm using.</p>

<pre><code>kubectl get rc my-rc --namespace=nightly --template='{{range .spec.template.spec.containers}}{{if .ports}}{{range .ports}}{{if .containerPort}}{{if eq .containerPort 5445}}{{end}}{{end}}{{end}}{{end}}{{end}}'
</code></pre>

<p>I think it is not a string comparison since it is a port. even string comparison throws an error "error calling eq: incompatible types for comparison'"</p>

<p>I could just fetch an array of container ports and do the comparison outside but want to get it done inside the go template.</p>

<p>I am new to Go lang. Appreciate any suggestions to accomplish this using template string or using a template file.. Thanks</p>

<p>Inspecting the .containerPort with <code>printf "%T" .containerPort</code> shows that it's a float64. if you compare your port with a trailing <code>5445.0</code> it should work.</p>

<p>You also have some unnecessary if statements. </p>

<pre><code>--template='{{range .spec.template.spec.containers}}{{range .ports}}{{if eq .containerPort 5445.0}}True{{end}}{{end}}{{end}}'
</code></pre>

<p>Your example was also missing the <code>-o="go-template"</code> flag to specify the output as a Go template.</p>
