Skip to content

Allow people to use KUBECONFIG env var and multiple config files #4816

@adietish

Description

@adietish

Steps:

  1. ASSERT: have several kube config files and KUBECONFIG env var pointing to it.
    example:
    ~/.bash/.bashrc
export KUBECONFIG=${HOME}/.kube/config:${HOME}/.kube/minikube.yaml:${HOME}/.kube/sandbox.yaml

~/.kube/config

apiVersion: v1
current-context: rh-sandbox
kind: Config
preferences: {}

~/.kube/minikube.yaml

apiVersion: v1
clusters:
- cluster:
    certificate-authority: /Users/adietish/.minikube/ca.crt
    extensions:
    - extension:
        provider: minikube.sigs.k8s.io
        version: v1.34.0
      name: cluster_info
    server: https://127.0.0.1:41825
  name: minikube
contexts:
- context:
    cluster: minikube
    extensions:
    - extension:
        last-update: Wed, 08 Jan 2025 15:05:54 CET
        provider: minikube.sigs.k8s.io
        version: v1.34.0
      name: context_info
    namespace: kube-node-lease
    user: minikube
  name: minikube
kind: Config
preferences: {}
users:
- name: minikube
  user:
    client-certificate: /Users/adietish/.minikube/profiles/minikube/client.crt
    client-key: /Users/adietish/.minikube/profiles/minikube/client.key

~/.kube/sandbox.yaml

apiVersion: v1
clusters:
- cluster:
    server: https://api.XXXX.openshiftapps.com:6443
  name: rh-sandbox
contexts:
- context:
    cluster: rh-sandbox
    namespace: adietish-dev
    user: adietish/rh-sandbox
  name: rh-sandbox
current-context: ""
kind: Config
preferences: {}
users:
- name: adietish/rh-sandbox
  user:
    token: sha256~XXXXXXXXXXXXXXXXXXXEMhxfNi614txI
  1. EXEC: launch extension

Result:
You get told that multiple config files are not supported and prompted to select one.
Image

Expected result:
The extension should support multiple config files if they're listed in KUBECONFIG. kubectl, oc and odo support it.
The major gotcha we faced in intellij-openshift-connector was oc login adding all contexts to the first file. See redhat-developer/intellij-openshift-connector#966

Metadata

Metadata

Assignees

Labels

Projects

  • Status

    📝 In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions