github.com/m3db/m3@v1.5.0/kube/terraform/README.md (about) 1 # M3DB Bundle Kubernetes Terraform Module 2 3 This folder contains the main module for setting up an M3DB cluster on Kubernetes which includes: 4 5 1. An M3DB [Namespace](https://v1-10.docs.kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) for all M3DB-related resources. 6 1. A 3-node etcd cluster in the form of a [StatefulSet](https://v1-10.docs.kubernetes.io/docs/concepts/workloads/controllers/statefulset/) backed by persistent remote SSDs. This cluster stores the DB topology and other runtime configuration data. 7 1. A 3-node M3DB cluster in the form of a StatefulSet. 8 1. [Headless services](https://v1-10.docs.kubernetes.io/docs/concepts/services-networking/dns-pod-service/#services) for the etcd and m3db StatefulSets to provide stable DNS hostnames per-pod. 9 10 Public cloud provider specific instructions can be found in the examples subfolder. 11 12 There are a couple of properties that currently exist in the raw bundle yaml file which has not yet been implemented by Terraform. These will be updated once the features exist in Terraform: 13 14 ```yaml 15 tolerations: 16 - key: "dedicated-m3db" 17 effect: NoSchedule 18 operator: Exist 19 20 ``` 21 A [pull request](https://github.com/terraform-providers/terraform-provider-kubernetes/pull/246) already exists for tolerations, but has yet to be merged. 22 23 24 ```yaml 25 affinity: 26 nodeAffinity: 27 preferredDuringSchedulingIgnoredDuringExecution: 28 - preference: 29 matchExpressions: 30 - key: m3db.io/dedicated-m3db 31 operator: In 32 values: 33 - "true" 34 weight: 10 35 36 ``` 37 Node Affinity is being tracked by [issue #233](https://github.com/terraform-providers/terraform-provider-kubernetes/issues/233) and is currently being worked on. 38