-
Notifications
You must be signed in to change notification settings - Fork 1
/
setup.sh
executable file
·174 lines (134 loc) · 8.13 KB
/
setup.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
174
# #########################################################################################################################
# # Delete
# #########################################################################################################################
# # Delete unused resources
# docker system prune -a
# # Delete all containers
# docker stop $(docker ps -a -q)
# docker rm $(docker ps -a -q)
# # Delete images
# docker rmi $(docker images -q)
# #########################################################################################################################
#########################################################################################################################
# Secret
#########################################################################################################################
kubectl create secret generic host-ip --from-literal=HOST_IP="$(ipconfig getifaddr en0)"
kubectl create secret generic account --from-literal=USER="ykoh" --from-literal=PASSWORD="ykoh"
#########################################################################################################################
#########################################################################################################################
# MetalLB
#########################################################################################################################
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.5/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.5/manifests/metallb.yaml
kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
export ADDRESSES=`ipconfig getifaddr en0`-`ipconfig getifaddr en0`
sed -i "" "s/ADDRESSES/$ADDRESSES/" srcs/MetalLB/config.yaml
kubectl apply -f srcs/MetalLB/config.yaml
sed -i "" "s/$ADDRESSES/ADDRESSES/" srcs/MetalLB/config.yaml
#########################################################################################################################
#########################################################################################################################
# MySQL
#########################################################################################################################
# docker build -t mysql srcs/MySQL && docker run -p 3306:3306 -it mysql
# kubectl delete -f srcs/MySQL/config.yaml
docker build -t mysql srcs/MySQL
kubectl apply -f srcs/MySQL/config.yaml
#########################################################################################################################
#########################################################################################################################
# PhpMyAdmin
#########################################################################################################################
# docker build -t phpmyadmin srcs/PhpMyAdmin && docker run -p 5000:5000 -it phpmyadmin
# kubectl delete -f srcs/PhpMyAdmin/config.yaml
docker build -t phpmyadmin srcs/PhpMyAdmin
kubectl apply -f srcs/PhpMyAdmin/config.yaml
#########################################################################################################################
#########################################################################################################################
# WordPress
#########################################################################################################################
# docker build -t wordpress srcs/WordPress && docker run -p 5050:5050 -it wordpress
# kubectl delete -f srcs/WordPress/config.yaml
docker build -t wordpress srcs/WordPress
kubectl apply -f srcs/WordPress/config.yaml
#########################################################################################################################
#########################################################################################################################
# Nginx
#########################################################################################################################
# docker build -t nginx srcs/Nginx && docker run -p 22:22 -it nginx
# kubectl delete -f srcs/Nginx/config.yaml
docker build -t nginx srcs/Nginx
kubectl apply -f srcs/Nginx/config.yaml
#########################################################################################################################
#########################################################################################################################
# influxDB
#########################################################################################################################
# docker build -t influxdb srcs/influxDB && docker run -p 8086:8086 -it influxdb
# kubectl delete -f srcs/influxDB/config.yaml
docker build -t influxdb srcs/influxDB
kubectl apply -f srcs/influxDB/config.yaml
#########################################################################################################################
#########################################################################################################################
# telegraf
#########################################################################################################################
# docker build -t telegraf srcs/telegraf && docker run -it telegraf
# kubectl delete -f srcs/telegraf/config.yaml
docker build -t telegraf srcs/telegraf
kubectl apply -f srcs/telegraf/config.yaml
#########################################################################################################################
#########################################################################################################################
# Grafana
#########################################################################################################################
# docker build -t grafana srcs/Grafana && docker run -p 3000:3000 -it grafana
# kubectl delete -f srcs/Grafana/config.yaml
docker build -t grafana srcs/Grafana
kubectl apply -f srcs/Grafana/config.yaml
#########################################################################################################################
#########################################################################################################################
# FTPS
#########################################################################################################################
# kubectl delete -f srcs/FTPS/config.yaml
docker build -t ftps srcs/FTPS
export HOST_IP=`ipconfig getifaddr en0`
sed -i "" "s/HOST_IP/$HOST_IP/" srcs/FTPS/config.yaml
kubectl apply -f srcs/FTPS/config.yaml
sed -i "" "s/$HOST_IP/HOST_IP/" srcs/FTPS/config.yaml
#########################################################################################################################
#########################################################################################################################
# Dashboard
#########################################################################################################################
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
kubectl apply -f srcs/metrics-server.yaml
# Creating a Service Account
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
EOF
# Creating a ClusterRoleBinding
cat <<EOF | kubectl apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
EOF
# Commandline proxy
kill -9 $(lsof -ti :8001)
kubectl proxy &
echo "k8s dashboard will be appear in 10s."
sleep 10
# Getting a Bearer Token
echo;echo "Type the Bearer Token bellowing to login to dashboard.";echo
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"
echo
# Dashboard URL
open "http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/"
#########################################################################################################################