Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

create tidb cluster with cr on aws #2004

Merged
merged 10 commits into from
Mar 23, 2020
59 changes: 29 additions & 30 deletions deploy/aws/clusters.tf
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,24 @@ provider "helm" {
}

# TiDB cluster declaration example
#module "example-cluster" {
# source = "./tidb-cluster"
# eks_info = local.default_eks
# subnets = local.default_subnets
#
# # NOTE: cluster_name cannot be changed after creation
# cluster_name = "demo-cluster"
# cluster_version = "v3.0.8"
# ssh_key_name = module.key-pair.key_name
# pd_count = 1
# pd_instance_type = "t2.xlarge"
# tikv_count = 1
# tikv_instance_type = "t2.xlarge"
# tidb_count = 1
# tidb_instance_type = "t2.xlarge"
# monitor_instance_type = "t2.xlarge"
# # yaml file that passed to helm to customize the release
# override_values = file("values/example.yaml")
#}
# module example-cluster {
# source = "../modules/aws/tidb-cluster"

# eks = local.eks
# subnets = local.subnets
# region = var.region
# cluster_name = "example"

# ssh_key_name = module.key-pair.key_name
# pd_count = 1
# pd_instance_type = "c5.large"
# tikv_count = 1
# tikv_instance_type = "c5d.large"
# tidb_count = 1
# tidb_instance_type = "c4.large"
# monitor_instance_type = "c5.large"
# create_tidb_cluster_release = false
# }

module "default-cluster" {
providers = {
Expand All @@ -46,15 +45,15 @@ module "default-cluster" {
subnets = local.subnets
region = var.region

cluster_name = var.default_cluster_name
cluster_version = var.default_cluster_version
ssh_key_name = module.key-pair.key_name
pd_count = var.default_cluster_pd_count
pd_instance_type = var.default_cluster_pd_instance_type
tikv_count = var.default_cluster_tikv_count
tikv_instance_type = var.default_cluster_tikv_instance_type
tidb_count = var.default_cluster_tidb_count
tidb_instance_type = var.default_cluster_tidb_instance_type
monitor_instance_type = var.default_cluster_monitor_instance_type
override_values = file("default-cluster.yaml")
cluster_name = var.default_cluster_name
cluster_version = var.default_cluster_version
ssh_key_name = module.key-pair.key_name
pd_count = var.default_cluster_pd_count
pd_instance_type = var.default_cluster_pd_instance_type
tikv_count = var.default_cluster_tikv_count
tikv_instance_type = var.default_cluster_tikv_instance_type
tidb_count = var.default_cluster_tidb_count
tidb_instance_type = var.default_cluster_tidb_instance_type
monitor_instance_type = var.default_cluster_monitor_instance_type
create_tidb_cluster_release = var.create_tidb_cluster_release
}
84 changes: 84 additions & 0 deletions deploy/aws/manifests/db-monitor.yaml.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
apiVersion: pingcap.com/v1alpha1
kind: TidbMonitor
metadata:
name: CLUSTER_NAME
spec:
alertmanagerURL: ""
annotations: {}
clusters:
- name: CLUSTER_NAME
grafana:
baseImage: grafana/grafana
envs:
# Configure Grafana using environment variables except GF_PATHS_DATA, GF_SECURITY_ADMIN_USER and GF_SECURITY_ADMIN_PASSWORD
# Ref https://grafana.com/docs/installation/configuration/#using-environment-variables
GF_AUTH_ANONYMOUS_ENABLED: "true"
GF_AUTH_ANONYMOUS_ORG_NAME: "Main Org."
GF_AUTH_ANONYMOUS_ORG_ROLE: "Viewer"
# if grafana is running behind a reverse proxy with subpath http://foo.bar/grafana
# GF_SERVER_DOMAIN: foo.bar
# GF_SERVER_ROOT_URL: "%(protocol)s://%(domain)s/grafana/"
imagePullPolicy: IfNotPresent
logLevel: info
password: admin
resources: {}
# limits:
# cpu: 8000m
# memory: 8Gi
# requests:
# cpu: 4000m
# memory: 4Gi
service:
portName: http-grafana
type: LoadBalancer
username: admin
version: 6.0.1
imagePullPolicy: IfNotPresent
initializer:
baseImage: pingcap/tidb-monitor-initializer
imagePullPolicy: IfNotPresent
resources: {}
# limits:
# cpu: 50m
# memory: 64Mi
# requests:
# cpu: 50m
# memory: 64Mi
version: v3.0.12
kubePrometheusURL: ""
nodeSelector: {}
persistent: true
prometheus:
baseImage: prom/prometheus
imagePullPolicy: IfNotPresent
logLevel: info
reserveDays: 12
resources: {}
# limits:
# cpu: 8000m
# memory: 8Gi
# requests:
# cpu: 4000m
# memory: 4Gi
service:
portName: http-prometheus
type: NodePort
version: v2.11.1
reloader:
baseImage: pingcap/tidb-monitor-reloader
imagePullPolicy: IfNotPresent
resources: {}
# limits:
# cpu: 50m
# memory: 64Mi
# requests:
# cpu: 50m
# memory: 64Mi
service:
portName: tcp-reloader
type: NodePort
version: v1.0.1
storage: 100Gi
storageClassName: ebs-gp2
tolerations: []

108 changes: 108 additions & 0 deletions deploy/aws/manifests/db.yaml.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
apiVersion: pingcap.com/v1alpha1
kind: TidbCluster
metadata:
name: CLUSTER_NAME
spec:
configUpdateStrategy: RollingUpdate
enableTLSCluster: false
helper:
image: busybox:1.31.1
hostNetwork: false
imagePullPolicy: IfNotPresent
pd:
affinity: {}
baseImage: pingcap/pd
config:
log:
level: info
replication:
location-labels:
- zone
max-replicas: 3
nodeSelector:
dedicated: CLUSTER_NAME-pd
podSecurityContext: {}
replicas: 3
requests:
cpu: "1"
memory: 400Mi
storage: 1Gi
storageClassName: ebs-gp2
tolerations:
- effect: NoSchedule
key: dedicated
operator: Equal
value: CLUSTER_NAME-pd
pvReclaimPolicy: Retain
schedulerName: tidb-scheduler
tidb:
affinity: {}
baseImage: pingcap/tidb
config:
log:
level: info
performance:
max-procs: 0
tcp-keep-alive: true
enableTLSClient: false
maxFailoverCount: 3
nodeSelector:
dedicated: CLUSTER_NAME-tidb
podSecurityContext:
sysctls:
- name: net.ipv4.tcp_keepalive_time
value: "300"
- name: net.ipv4.tcp_keepalive_intvl
value: "75"
- name: net.core.somaxconn
value: "32768"
replicas: 2
requests:
cpu: "1"
memory: 400Mi
separateSlowLog: true
service:
annotations:
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: 'true'
service.beta.kubernetes.io/aws-load-balancer-internal: '0.0.0.0/0'
service.beta.kubernetes.io/aws-load-balancer-type: nlb
exposeStatus: true
externalTrafficPolicy: Local
type: LoadBalancer
slowLogTailer:
limits:
cpu: 100m
memory: 50Mi
requests:
cpu: 20m
memory: 5Mi
tolerations:
- effect: NoSchedule
key: dedicated
operator: Equal
value: CLUSTER_NAME-tidb
tikv:
affinity: {}
baseImage: pingcap/tikv
config:
log-level: info
hostNetwork: false
maxFailoverCount: 3
nodeSelector:
dedicated: CLUSTER_NAME-tikv
podSecurityContext: {}
privileged: false
replicas: 3
requests:
cpu: "1"
memory: 2Gi
storage: 45Gi
storageClassName: local-storage
tolerations:
- effect: NoSchedule
key: dedicated
operator: Equal
value: CLUSTER_NAME-tikv
timezone: UTC
version: v3.0.12

6 changes: 5 additions & 1 deletion deploy/aws/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ variable "eks_version" {

variable "operator_version" {
description = "TiDB operator version"
default = "v1.0.6"
default = "v1.1.0"
}

variable "operator_values" {
Expand Down Expand Up @@ -115,3 +115,7 @@ variable "default_cluster_name" {
default = "my-cluster"
}

variable "create_tidb_cluster_release" {
description = "whether creating tidb-cluster helm release"
default = false
}