derailed / k9s

🐶 Kubernetes CLI To Manage Your Clusters In Style!
https://k9scli.io
Apache License 2.0
27.24k stars 1.7k forks source link

Switch used cloud account pre-connect to k8s instance #1570

Open lukeb2e opened 2 years ago

lukeb2e commented 2 years ago




Is your feature request related to a problem? Please describe. We have multiple k8s clusters in multiple regions, spanning multiple azure clouds (Azure Global, China, ...). The authorization to access the cluster is connected to the region specific account. Due to Azure China having a seperate user management from Azure Global the connection fails. K9S throws an error that it is unable to connect to the cluster.

To access the other cluster, I need to manually enter the command az cloud set --name AzureCloud. Afterwards a connection to the appropriate cluster is possible.

Describe the solution you'd like I would like to let k9s execute the az cloud set command automatically when switching k8s clusters to the appropriate account automatically. Eg a pre-connect command that would execute the command az cloud set --name AzureCloud before connecting to a cluster in Azure Global.

Describe alternatives you've considered Currently the workaround is to close k9s, enter the az cloud set command, and reopen k9s. This is frustrating, especially in on-call situations. I did check if there is a shorthand to execute a command similar to vim's shell, but was unable to find one.

Additional context

dudicoco commented 11 months ago

i'm unfamiliar with Azure, but with AWS EKS this is done from within the kube config file, so check if that is possible with Azure as well:

users:
- name: test
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1beta1
      args:
      - --region
      - ap-southeast-2
      - eks
      - get-token
      - --cluster-name
      - prod
      - --output
      - json
      command: aws
      env:
      - name: AWS_PROFILE
        value: test 
      interactiveMode: IfAvailable
      provideClusterInfo: false
omerls-pw commented 10 months ago

an addition of something like --aws-profile profile_name would be great.