Search code examples
kuberneteskubernetes-helmminikubeconsul

apiVersion is not the same as in the helm template


I'm using consul helm chart repo to install consul agent. I'm installing the chart on my minikube cluster (version 1.10). The template of the daemonSet for consul client shows apiVersion: apps/v1. When i'm installing consul and checking the apiVersion I get a different version:

❯ kubectl edit ds consul-agent-consul

apiVersion: extensions/v1beta1

I can't seem to understand why is that? When i'm running helm install in dry-run mode I see the correct api version:

❯ helm install consul-agent . --debug --dry-run
# Source: consul/templates/client-daemonset.yaml
# DaemonSet to run the Consul clients on every node.
apiVersion: apps/v1
kind: DaemonSet

using helm version:

❯ helm version                                                                                                                                                                                                                         
version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"dirty", GoVersion:"go1.14.3"}

Edit: kubectl version:

Client Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.6-beta.0", GitCommit:"e7f962ba86f4ce7033828210ca3556393c377bcc", GitTreeState:"clean", BuildDate:"2020-01-15T08:26:26Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0", GitCommit:"fc32d2f3698e36b93322a3465f63a14e9f0eaead", GitTreeState:"clean", BuildDate:"2018-03-26T16:44:10Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

Solution

  • The Kubernetes API Server version is 1.10.0 and kubectl client version is 1.16. Before Kubernetes API Server version 1.16 DaemonSet were in extensions/v1beta1 which was changed to apps/v1 in Kubernetes API Server version 1.16. You should upgrade Kubernetes API Server version to 1.16 or later if you want to use DaemonSet with apps/v1