pingcap / tidb-operator

TiDB operator creates and manages TiDB clusters running in Kubernetes.
https://docs.pingcap.com/tidb-in-kubernetes/
Apache License 2.0
1.23k stars 498 forks source link

Cannot deploy tidb-cluster via helm because of exceeding maximum words of configmap #697

Closed yeya24 closed 5 years ago

yeya24 commented 5 years ago

Bug Report

What version of Kubernetes are you using?

v1.15.0

What version of TiDB Operator are you using?

What storage classes exist in the Kubernetes cluster and what are used for PD/TiKV pods?

storage class created by local-volume-provisioner

What's the status of the TiDB cluster pods?

What did you do?

customize tidb-cluster helm chart value and then deploy using helm template . -f my-values.yml | kubectl apply -f - As for my-values.yml, I only change storage class name from the original one.

What did you expect to see? Install successfully

What did you see instead? kubectl apply -f output

secret/release-name-monitor created
configmap/release-name-monitor created
configmap/release-name-pd-aa6df71f created
configmap/release-name-tidb-a4c4bb14 created
configmap/release-name-tidb created
configmap/release-name-tikv-210ef60f created
role.rbac.authorization.k8s.io/release-name-discovery created
rolebinding.rbac.authorization.k8s.io/release-name-discovery created
serviceaccount/release-name-discovery created
role.rbac.authorization.k8s.io/release-name-monitor created
rolebinding.rbac.authorization.k8s.io/release-name-monitor created
serviceaccount/release-name-monitor created
service/release-name-discovery created
service/release-name-grafana created
service/release-name-prometheus created
service/release-name-tidb created
deployment.apps/release-name-discovery created
deployment.apps/release-name-monitor created
tidbcluster.pingcap.com/release-name created
Error from server (Invalid): error when creating "tidb-cluster.yml": ConfigMap "release-name-monitor-dashboard-v2" is invalid: metadata.annotations: Too long: must have at most 262144 characters
Error from server (Invalid): error when creating "tidb-cluster.yml": ConfigMap "release-name-monitor-dashboard-v3" is invalid: metadata.annotations: Too long: must have at most 262144 characters
Error from server (Invalid): error when creating "tidb-cluster.yml": ConfigMap "release-name-monitor-dashboard-extra-v3" is invalid: metadata.annotations: Too long: must have at most 262144 characters
weekface commented 5 years ago

@yeya24 what is the output of helm template . -f my-values.yml?

xiaojingchen commented 5 years ago

@yeya24 the reason is kubectl apply will autosave the resource's data to it's annotations with key name kubectl.kubernetes.io/last-applied-configuration when created or update. that cause our monitor ConfigMap's annotations data is too big to created. so please use helm to deploy according to doc: https://pingcap.com/docs-cn/v3.0/how-to/deploy/orchestrated/tidb-in-kubernetes/general-kubernetes/

xiaojingchen commented 5 years ago

@qiffang we should avoid to use ConfigMap to save the monitor data which is too big, directly save it in image would be better.

yeya24 commented 5 years ago

@xiaojingchen Thanks for your reply. I will close this issue.