Skip to content

Instantly share code, notes, and snippets.

@galexrt
Last active July 16, 2018 11:45
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save galexrt/411ea4ad83a952d9a7af68e51b5a0b16 to your computer and use it in GitHub Desktop.
Save galexrt/411ea4ad83a952d9a7af68e51b5a0b16 to your computer and use it in GitHub Desktop.
CoreOS is used for the nodes. Every node has sda10 mounted to /var/lib/rook and sdb empty used as a whole. The nodes have been labelled according to the placements.
apiVersion: rook.io/v1alpha1
kind: Cluster
metadata:
name: rook
namespace: rook
spec:
versionTag: master
dataDirHostPath: /var/lib/rook-config
# toggle to use hostNetwork
hostNetwork: true
# set the amount of mons to be started
monCount: 3
# To control where various services will be scheduled by kubernetes, use the placement configuration sections below.
# The example under 'all' would have all services scheduled on kubernetes nodes labeled with 'role=storage' and
# tolerate taints with a key of 'storage-node'.
placement:
all:
# nodeAffinity:
# tolerations:
api:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: storage.example.com/api
operator: In
values:
- ""
# tolerations:
mon:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: "app"
operator: In
values:
- rook-ceph-mon
topologyKey: "kubernetes.io/hostname"
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: storage.example.com/mon
operator: In
values:
- ""
# tolerations:
osd:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: storage.example.com/osd
operator: In
values:
- ""
# tolerations:
rgw:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: "app"
operator: In
values:
- rook-ceph-rgw
topologyKey: "kubernetes.io/hostname"
nodeAffinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: storage.example.com/rgw
operator: In
values:
- ""
# tolerations:
storage:
useAllNodes: false
useAllDevices: false
deviceFilter: ^sd(b)
metadataDevice:
location:
storeConfig:
storeType: bluestore
# Individual nodes and their config can be specified as well, but 'useAllNodes' above must be set to false. Then, only the named
# nodes below will be used as storage resources. Each node's 'name' field should match their 'kubernetes.io/hostname' label.
nodes:
- name: "kube-node-01.example.com"
directories:
- path: "/var/lib/rook"
devices:
- name: "sdb"
- name: "kube-node-02.example.com"
directories:
- path: "/var/lib/rook"
devices:
- name: "sdb"
- name: "kube-node-03.example.com"
directories:
- path: "/var/lib/rook"
devices:
- name: "sdb"
- name: "kube-node-04.example.com"
directories:
- path: "/var/lib/rook"
devices:
- name: "sdb"
- name: "kube-node-05.example.com"
directories:
- path: "/var/lib/rook"
devices:
- name: "sdb"
- name: "kube-node-06.example.com"
directories:
- path: "/var/lib/rook"
devices:
- name: "sdb"
- name: "kube-node-07.example.com"
directories:
- path: "/var/lib/rook"
devices:
- name: "sdb"
- name: "kube-node-08.example.com"
directories:
- path: "/var/lib/rook"
devices:
- name: "sdb"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment