Open attilapiros opened 3 years ago
It was closed by accident the problem is still there.
This is clearly a problem with kubectl itself, and how minikube is writing its kubeconfig with different versions of kubernetes. Doing some more digging, it seems to be because of the extensions we added our kubeconfig for auditabilty a couple of versions of minikube ago. These work perfectly in k8s 1.17+ but will break kubectl config view in k8s 1.16 and earlier.
The solution here is to only write the extensions into kubeconfig with appropriate versions of kubernetes present.
It's worth nothing that I can reproduce this with minikube kubectl
and with just the kubectl
binary in my path.
Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale
.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close
.
Send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale
Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten
.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close
.
Send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten
I just hit this issue with a production cluster and would have never guessed it was the minikube installation that caused it if it wasn't for my coworker pointing out this issue. Any updates on this? I am currently forced to rename the ~/.kube/config
into something else in order to use kubectl in production.
For me the problem appeared after I installed minikube.
Previously the client version 1.16. of kubectl
was installed (from gcloud). By installing minikube, which uses a more recent version of kubectl
, the minikube cluster was added in ~/.kube/config
as follows:
apiVersion: v1
clusters:
- cluster:
certificate-authority: /home/user/.minikube/ca.crt
extensions:
- extension:
last-update: Wed, 09 Feb 2022 11:07:55 CET
provider: minikube.sigs.k8s.io
version: v1.25.1
name: cluster_info
server: https://192.168.49.2:8443
name: minikube
contexts:
- context:
cluster: minikube
extensions:
- extension:
last-update: Wed, 09 Feb 2022 11:07:55 CET
provider: minikube.sigs.k8s.io
version: v1.25.1
name: context_info
namespace: default
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate: /home/user/.minikube/profiles/minikube/client.crt
client-key: /home/user/.minikube/profiles/minikube/client.key
The extensions
section in the yaml could not be parsed correctly by the old kubctl
. This causes also the kubectx
and kubens
commands to fail with:
error: converting to : type names don't match (Unknown, RawExtension), and no conversion 'func (runtime.Unknown, runtime.RawExtension) error' registered.
error getting current context
I solved the issue by updating all my gcloud components via:
gcloud components update
which updated also the binaries of the kubectl
to version 1.21
Upgrading to k8s 1.17 and above will always be a solution here, but since minikube still supports k8s 1.16 as of v1.25.2, we should fix the bug itself. Help wanted!
Steps to reproduce the issue:
wget -O minikube-darwin-amd64 https://github.com/kubernetes/minikube/releases/download/v1.17.1/minikube-darwin-amd64
andsudo install minikube-darwin-amd64 /usr/local/bin/minikube
minikube start --memory 8192 --cpus 8 --kubernetes-version=v1.15.12
minikube kubectl -- config view
which fails with the error below.Meanwhile this v1.15.12 version should be supported based upon the oldest and newest kubernetes versions: https://github.com/kubernetes/minikube/blob/043bdca07e54ab6e4fc0457e3064048f34133d7e/pkg/minikube/constants/constants.go#L30-L36
Full output of failed command:
Full output of
minikube start
command used, if not already included:Optional: Full output of
minikube logs
command: