<p>With the <code>kubectl</code> command line, I can run commands in a given context using the <code>--context</code> flag, such as:</p>
<pre><code>kubectl --context &lt;MyContext&gt; get deploy messenger
</code></pre>
<p>However, when I am trying to list pods using the following API, there does not appear to be a way to pass in the context.</p>
<pre><code> from kubernetes import client
 v1 = client.CoreV1Api()
 pods = v1.list_namespaced_pod(&quot;messenger&quot;)
</code></pre>
<p>The command above seems to give me the pods in the current context.</p>
<p><strong>Is there a way to list the pods under a different context using the Python API?</strong></p>
<p>I've looked at the following docs and looked for the string <code>context</code> but haven't found anything illuminating.</p>
<p><a href="https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/" rel="nofollow noreferrer">https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/</a>
<a href="https://github.com/kubernetes-client/python/blob/master/kubernetes/README.md" rel="nofollow noreferrer">https://github.com/kubernetes-client/python/blob/master/kubernetes/README.md</a></p>

merlin2011
<p>you can read the contexts from the file and pass it to the <code>CoreV1Api</code> function like below</p>
<pre class="lang-py prettyprint-override"><code># Copyright 2016 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

&quot;&quot;&quot;
Allows you to pick a context and then lists all pods in the chosen context.
Please install the pick library before running this example.
&quot;&quot;&quot;

from kubernetes import client, config
from kubernetes.client import configuration
from pick import pick  # install pick using `pip install pick`


def main():
    contexts, active_context = config.list_kube_config_contexts()
    if not contexts:
        print(&quot;Cannot find any context in kube-config file.&quot;)
        return
    contexts = [context['name'] for context in contexts]
    active_index = contexts.index(active_context['name'])
    cluster1, first_index = pick(contexts, title=&quot;Pick the first context&quot;,
                                 default_index=active_index)
    cluster2, _ = pick(contexts, title=&quot;Pick the second context&quot;,
                       default_index=first_index)

    client1 = client.CoreV1Api(
        api_client=config.new_client_from_config(context=cluster1))
    client2 = client.CoreV1Api(
        api_client=config.new_client_from_config(context=cluster2))

    print(&quot;\nList of pods on %s:&quot; % cluster1)
    for i in client1.list_pod_for_all_namespaces().items:
        print(&quot;%s\t%s\t%s&quot; %
              (i.status.pod_ip, i.metadata.namespace, i.metadata.name))

    print(&quot;\n\nList of pods on %s:&quot; % cluster2)
    for i in client2.list_pod_for_all_namespaces().items:
        print(&quot;%s\t%s\t%s&quot; %
              (i.status.pod_ip, i.metadata.namespace, i.metadata.name))


if __name__ == '__main__':
    main()
</code></pre>
<p>Code can be found on there github example folder as well
<a href="https://github.com/kubernetes-client/python/blob/master/examples/multiple_clusters.py" rel="noreferrer">https://github.com/kubernetes-client/python/blob/master/examples/multiple_clusters.py</a></p>
