This repository has been archived by the owner on Jun 26, 2020. It is now read-only.
/
setup_dev_env.sh
executable file
·173 lines (143 loc) · 7.43 KB
/
setup_dev_env.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#!/bin/bash -xe
DEV_BASE=${DEV_BASE:-/opt}
KOLLA_K8S=${DEV_BASE}/kolla-kubernetes
pushd ${DEV_BASE}
# create build environment and run
ceph_setup () {
ssh vagrant@kube2 'bash -s' < kolla-kubernetes/tests/bin/setup_gate_loopback.sh
echo "kolla_base_distro: centos" >> kolla-ansible/etc/kolla/globals.yml
cat kolla-kubernetes/tests/conf/ceph-all-in-one/kolla_config \
>> kolla-ansible/etc/kolla/globals.yml
cat kolla-kubernetes/tests/conf/ceph-all-in-one/kolla_kubernetes_config \
>> kolla-kubernetes/etc/kolla-kubernetes/kolla-kubernetes.yml
sed -i "s/initial_mon:.*/initial_mon: kube2/" \
kolla-kubernetes/etc/kolla-kubernetes/kolla-kubernetes.yml
interface="eth1"
echo "tunnel_interface: $interface" >> kolla-ansible/etc/kolla/globals.yml
echo "storage_interface: $interface" >> \
kolla-kubernetes/etc/kolla-kubernetes/kolla-kubernetes.yml
sed -i "s/172.17.0.1/$(cat /etc/nodepool/primary_node_private)/" \
kolla-kubernetes/etc/kolla-kubernetes/kolla-kubernetes.yml
}
config_setup () {
kolla-kubernetes/tools/secret-generator.py
kolla-ansible/tools/kolla-ansible genconfig
crudini --set /etc/kolla/nova-compute/nova.conf libvirt virt_type qemu
crudini --set /etc/kolla/nova-compute/nova.conf libvirt rbd_user nova
UUID=$(awk '{if($1 == "rbd_secret_uuid:"){print $2}}' /etc/kolla/passwords.yml)
crudini --set /etc/kolla/nova-compute/nova.conf libvirt rbd_secret_uuid $UUID
# Keystone does not seem to invalidate its cache on entry point addition.
crudini --set /etc/kolla/keystone/keystone.conf cache enabled False
sed -i 's/log_outputs = "3:/log_outputs = "1:/' /etc/kolla/nova-libvirt/libvirtd.conf
sed -i 's/log_level = 3/log_level = 1/' /etc/kolla/nova-libvirt/libvirtd.conf
sed -i \
'/\[global\]/a osd pool default size = 1\nosd pool default min size = 1\nosd crush chooseleaf type = 0\ndebug default = 5\n'\
/etc/kolla/ceph*/ceph.conf
kolla-kubernetes/tools/fix-mitaka-config.py
}
k8s_setup () {
kubectl get nodes -L kubeadm.alpha.kubernetes.io/role --no-headers | awk '$NF ~ /^<none>/ { print $1}' | while read NODE ; do
kubectl label node $NODE --overwrite kolla_compute=true
done
kubectl label node 172.16.35.12 --overwrite kolla_controller=true
kubectl create namespace kolla
kolla-kubernetes/tools/secret-generator.py create
kolla-kubernetes/tools/setup-resolv-conf.sh kolla
}
ceph_startup () {
kollakube template configmap ceph-mon ceph-osd > /tmp/kube.yaml
kubectl create -f /tmp/kube.yaml
kollakube template bootstrap ceph-bootstrap-initial-mon > /tmp/kube.yaml
sed -i "s|kubernetes.io/hostname: kube2|kubernetes.io/hostname: 172.16.35.12|g" /tmp/kube.yaml
kubectl create -f /tmp/kube.yaml
kolla-kubernetes/tools/wait_for_pods.py kolla ceph-bootstrap-initial-mon succeeded
kolla-kubernetes/tools/setup-ceph-secrets.sh
# ceph mon-bootstrap
kollakube res delete bootstrap ceph-bootstrap-initial-mon
kollakube template pod ceph-mon > /tmp/kube.yaml
sed -i "s|kubernetes.io/hostname: kube2|kubernetes.io/hostname: 172.16.35.12|g" /tmp/kube.yaml
kubectl create -f /tmp/kube.yaml
kolla-kubernetes/tools/wait_for_pods.py kolla ceph-mon running
# ceph-osd0 / osd1 bootstrap
kollakube template pod ceph-bootstrap-osd0 > /tmp/kube.yaml
sed -i "s|kubernetes.io/hostname: kube2|kubernetes.io/hostname: 172.16.35.12|g" /tmp/kube.yaml
sed -i "s|loop0|loop2|g" /tmp/kube.yaml
kubectl create -f /tmp/kube.yaml
kolla-kubernetes/tools/wait_for_pods.py kolla ceph-bootstrap-osd0 succeeded
kollakube template pod ceph-bootstrap-osd1 > /tmp/kube.yaml
sed -i "s|kubernetes.io/hostname: kube2|kubernetes.io/hostname: 172.16.35.12|g" /tmp/kube.yaml
sed -i "s|loop1|loop3|g" /tmp/kube.yaml
kubectl create -f /tmp/kube.yaml
kolla-kubernetes/tools/wait_for_pods.py kolla ceph-bootstrap-osd1 succeeded
# cleanup ceph bootstrap
kollakube res delete pod ceph-bootstrap-osd0
kollakube res delete pod ceph-bootstrap-osd1
# ceph osd0 / osd1 startup
sed -i "s|^ceph_osd_data_kube2:|ceph_osd_data_dev:|g" \
kolla-kubernetes/etc/kolla-kubernetes/kolla-kubernetes.yml
sed -i "s|^ceph_osd_journal_kube2:|ceph_osd_journal_dev:|g" \
kolla-kubernetes/etc/kolla-kubernetes/kolla-kubernetes.yml
sed -i "s|/kube2/loop|/dev/loop|g" \
kolla-kubernetes/etc/kolla-kubernetes/kolla-kubernetes.yml
kollakube template pod ceph-osd0 > /tmp/kube.yaml
sed -i "s|kubernetes.io/hostname: kube2|kubernetes.io/hostname: 172.16.35.12|g" /tmp/kube.yaml
sed -i "s|loop0|loop2|g" /tmp/kube.yaml
kubectl create -f /tmp/kube.yaml
kolla-kubernetes/tools/wait_for_pods.py kolla ceph-osd0 running
kollakube template pod ceph-osd1 > /tmp/kube.yaml
sed -i "s|kubernetes.io/hostname: kube2|kubernetes.io/hostname: 172.16.35.12|g" /tmp/kube.yaml
sed -i "s|loop1|loop3|g" /tmp/kube.yaml
kubectl create -f /tmp/kube.yaml
kolla-kubernetes/tools/wait_for_pods.py kolla ceph-osd1 running
kubectl exec ceph-osd0 -c main --namespace=kolla -- /bin/bash -c \
"cat /etc/ceph/ceph.conf" > /tmp/ceph.conf
kubectl create configmap ceph-conf --namespace=kolla \
--from-file=ceph.conf=/tmp/ceph.conf
# ceph admin startup
kollakube template pod ceph-admin ceph-rbd > /tmp/kube.yaml
kubectl create -f /tmp/kube.yaml
kolla-kubernetes/tools/wait_for_pods.py kolla ceph-admin,ceph-rbd running
kubectl exec ceph-admin -c main --namespace=kolla -- /bin/bash -c "ceph -s"
for x in kollavolumes images volumes vms; do
kubectl exec ceph-admin -c main --namespace=kolla -- /bin/bash \
-c "ceph osd pool create $x 64; ceph osd pool set $x size 1; ceph osd pool set $x min_size 1"
done
kubectl exec ceph-admin -c main --namespace=kolla -- /bin/bash \
-c "ceph osd pool delete rbd rbd --yes-i-really-really-mean-it"
kolla-kubernetes/tools/setup_simple_ceph_users.sh
kolla-kubernetes/tools/setup_rbd_volumes.sh --yes-i-really-really-mean-it 2
}
helm_setup () {
rm -rf ~/.helm
helm init
kubectl delete deployment tiller-deploy --namespace=kube-system; helm init
# wait for tiller service to be up / available
while true; do
echo 'Waiting for tiller to become available.'
helm version | grep Server > /dev/null && \
RUNNING=True || RUNNING=False
[ $RUNNING == "True" ] && \
break || true
sleep 5
done
kolla-kubernetes/tools/helm_build_all.sh ~/.helm/repository/kolla
helm repo remove kollabuild
kolla-kubernetes/tools/helm_buildrepo.sh ~/.helm/repository/kolla 10192 kolla &
helm repo update
kollakube res create configmap \
mariadb keystone horizon rabbitmq memcached nova-api nova-conductor \
nova-scheduler glance-api-haproxy glance-registry-haproxy glance-api \
glance-registry neutron-server neutron-dhcp-agent neutron-l3-agent \
neutron-metadata-agent neutron-openvswitch-agent openvswitch-db-server \
openvswitch-vswitchd nova-libvirt nova-compute nova-consoleauth \
nova-novncproxy nova-novncproxy-haproxy neutron-server-haproxy \
nova-api-haproxy cinder-api cinder-api-haproxy cinder-backup \
cinder-scheduler cinder-volume keepalived;
kollakube res create secret nova-libvirt
}
ceph_setup
config_setup
k8s_setup
ceph_startup
helm_setup
kolla-kubernetes/tests/bin/ceph_workflow_service.sh devenv centos 2 172.16.35.11 eth1