Skip to content

Commit 5160f57

Browse files
committed
Added scripts to provision local storage on the kubeadm cluster.
1 parent f27a9cf commit 5160f57

File tree

2 files changed

+140
-0
lines changed

2 files changed

+140
-0
lines changed
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: local-storage
5+
---
6+
apiVersion: v1
7+
kind: Service
8+
metadata:
9+
name: local-volume-provisioner
10+
namespace: local-storage
11+
labels:
12+
app: local-volume-provisioner
13+
spec:
14+
type: ClusterIP
15+
selector:
16+
app: local-volume-provisioner
17+
ports:
18+
- name: metrics
19+
port: 8080
20+
protocol: TCP
21+
---
22+
apiVersion: storage.k8s.io/v1
23+
kind: StorageClass
24+
metadata:
25+
name: local-storage
26+
provisioner: kubernetes.io/no-provisioner
27+
volumeBindingMode: WaitForFirstConsumer
28+
reclaimPolicy: Delete
29+
---
30+
apiVersion: v1
31+
kind: ConfigMap
32+
metadata:
33+
name: local-provisioner-config
34+
namespace: local-storage
35+
data:
36+
storageClassMap: |
37+
local-storage:
38+
hostDir: /mnt/local-storage
39+
mountDir: /mnt/local-storage
40+
blockCleanerCommand:
41+
- "/scripts/shred.sh"
42+
- "2"
43+
---
44+
apiVersion: extensions/v1beta1
45+
kind: DaemonSet
46+
metadata:
47+
name: local-volume-provisioner
48+
namespace: local-storage
49+
labels:
50+
app: local-volume-provisioner
51+
spec:
52+
selector:
53+
matchLabels:
54+
app: local-volume-provisioner
55+
template:
56+
metadata:
57+
labels:
58+
app: local-volume-provisioner
59+
spec:
60+
serviceAccountName: local-storage-admin
61+
containers:
62+
- image: "quay.io/external_storage/local-volume-provisioner:v2.1.0"
63+
imagePullPolicy: "Always"
64+
name: provisioner
65+
securityContext:
66+
privileged: true
67+
env:
68+
- name: MY_NODE_NAME
69+
valueFrom:
70+
fieldRef:
71+
fieldPath: spec.nodeName
72+
volumeMounts:
73+
- mountPath: /etc/provisioner/config
74+
name: provisioner-config
75+
readOnly: true
76+
- mountPath: /mnt/local-storage
77+
name: local-storage
78+
mountPropagation: "HostToContainer"
79+
volumes:
80+
- name: provisioner-config
81+
configMap:
82+
name: local-provisioner-config
83+
- name: local-storage
84+
hostPath:
85+
path: /mnt/local-storage
86+
---
87+
apiVersion: v1
88+
kind: ServiceAccount
89+
metadata:
90+
name: local-storage-admin
91+
namespace: local-storage
92+
---
93+
apiVersion: rbac.authorization.k8s.io/v1
94+
kind: ClusterRoleBinding
95+
metadata:
96+
name: local-storage-provisioner-pv-binding
97+
namespace: local-storage
98+
subjects:
99+
- kind: ServiceAccount
100+
name: local-storage-admin
101+
namespace: local-storage
102+
roleRef:
103+
kind: ClusterRole
104+
name: system:persistent-volume-provisioner
105+
apiGroup: rbac.authorization.k8s.io
106+
---
107+
apiVersion: rbac.authorization.k8s.io/v1
108+
kind: ClusterRole
109+
metadata:
110+
name: local-storage-provisioner-node-clusterrole
111+
namespace: local-storage
112+
rules:
113+
- apiGroups: [""]
114+
resources: ["nodes"]
115+
verbs: ["get"]
116+
---
117+
apiVersion: rbac.authorization.k8s.io/v1
118+
kind: ClusterRoleBinding
119+
metadata:
120+
name: local-storage-provisioner-node-binding
121+
namespace: local-storage
122+
subjects:
123+
- kind: ServiceAccount
124+
name: local-storage-admin
125+
namespace: local-storage
126+
roleRef:
127+
kind: ClusterRole
128+
name: local-storage-provisioner-node-clusterrole
129+
apiGroup: rbac.authorization.k8s.io
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/bin/bash -e
2+
3+
# num of persistent volumes
4+
PV_COUNT=25
5+
6+
for i in $(seq 1 $PV_COUNT); do
7+
vol="vol$i"
8+
9+
mkdir -p /mnt/local-storage/$vol
10+
mount --bind /mnt/local-storage/$vol /mnt/local-storage/$vol
11+
done

0 commit comments

Comments
 (0)