netmaker-template.yaml 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. ---
  2. apiVersion: v1
  3. kind: PersistentVolumeClaim
  4. metadata:
  5. name: rqlite-pvc
  6. spec:
  7. accessModes:
  8. - ReadWriteOnce
  9. resources:
  10. requests:
  11. storage: 1Gi
  12. ---
  13. apiVersion: apps/v1
  14. kind: Deployment
  15. metadata:
  16. name: netmaker-backend
  17. labels:
  18. app: netmaker-backend
  19. spec:
  20. selector:
  21. matchLabels:
  22. app: netmaker-backend
  23. replicas: 1
  24. strategy:
  25. type: Recreate
  26. template:
  27. metadata:
  28. labels:
  29. app: netmaker-backend
  30. spec:
  31. containers:
  32. - name: netmaker-backend
  33. image: gravitl/netmaker:v0.7
  34. imagePullPolicy: Always
  35. ports:
  36. - containerPort: 8081
  37. securityContext:
  38. privileged: true
  39. env:
  40. - name: SERVER_API_CONN_STRING
  41. value: "api.NETMAKER_BASE_DOMAIN:443"
  42. - name: SERVER_GRPC_CONN_STRING
  43. value: "grpc.NETMAKER_BASE_DOMAIN:443"
  44. - name: COREDNS_ADDR
  45. value: "10.152.183.53"
  46. - name: POD_IP
  47. valueFrom:
  48. fieldRef:
  49. fieldPath: status.podIP
  50. - name: GRPC_SSL
  51. value: "on"
  52. - name: SERVER_HTTP_HOST
  53. value: "api.NETMAKER_BASE_DOMAIN"
  54. - name: SERVER_GRPC_HOST
  55. value: "grpc.NETMAKER_BASE_DOMAIN"
  56. - name: API_PORT
  57. value: "8081"
  58. - name: GRPC_PORT
  59. value: "80"
  60. - name: CLIENT_MODE
  61. value: "off"
  62. - name: MASTER_KEY
  63. value: "Unkn0wn!"
  64. - name: PLATFORM
  65. value: "Kubernetes"
  66. - name: CORS_ALLOWED_ORIGIN
  67. value: "*"
  68. volumeMounts:
  69. - name: nm-pvc
  70. mountPath: /root/config/dnsconfig
  71. - name: rqlite
  72. image: rqlite/rqlite
  73. ports:
  74. - containerPort: 4001
  75. - containerPort: 4002
  76. volumeMounts:
  77. - name: rqlitevol
  78. mountPath: /rqlite/file/data
  79. volumes:
  80. - name: rqlitevol
  81. persistentVolumeClaim:
  82. claimName: rqlite-pvc
  83. - name: nm-pvc
  84. persistentVolumeClaim:
  85. claimName: nm-pvc
  86. ---
  87. apiVersion: v1
  88. kind: PersistentVolumeClaim
  89. metadata:
  90. name: nm-pvc
  91. spec:
  92. accessModes:
  93. - ReadWriteMany
  94. resources:
  95. requests:
  96. storage: 128Mi
  97. ---
  98. apiVersion: v1
  99. kind: Service
  100. metadata:
  101. labels:
  102. app: netmaker-backend
  103. name: netmaker-api
  104. spec:
  105. ports:
  106. - port: 8081
  107. protocol: TCP
  108. targetPort: 8081
  109. selector:
  110. app: netmaker-backend
  111. sessionAffinity: None
  112. type: ClusterIP
  113. ---
  114. apiVersion: v1
  115. kind: Service
  116. metadata:
  117. labels:
  118. app: netmaker-backend
  119. name: netmaker-grpc
  120. spec:
  121. ports:
  122. - port: 443
  123. protocol: TCP
  124. targetPort: 443
  125. selector:
  126. app: netmaker-backend
  127. sessionAffinity: None
  128. type: ClusterIP
  129. ---
  130. apiVersion: apps/v1
  131. kind: Deployment
  132. metadata:
  133. name: netmaker-dns
  134. labels:
  135. app: netmaker-dns
  136. spec:
  137. selector:
  138. matchLabels:
  139. app: netmaker-dns
  140. replicas: 1
  141. template:
  142. metadata:
  143. labels:
  144. app: netmaker-dns
  145. spec:
  146. containers:
  147. - args:
  148. - -conf
  149. - /root/dnsconfig/Corefile
  150. image: coredns/coredns
  151. imagePullPolicy: Always
  152. name: netmaker-dns
  153. ports:
  154. - containerPort: 53
  155. name: dns
  156. protocol: UDP
  157. - containerPort: 53
  158. name: dns-tcp
  159. protocol: TCP
  160. volumeMounts:
  161. - mountPath: /root/dnsconfig
  162. name: nm-pvc
  163. readOnly: true
  164. securityContext:
  165. allowPrivilegeEscalation: false
  166. capabilities:
  167. add:
  168. - NET_BIND_SERVICE
  169. drop:
  170. - all
  171. dnsPolicy: "None"
  172. dnsConfig:
  173. nameservers:
  174. - 127.0.0.1
  175. volumes:
  176. - name: nm-pvc
  177. persistentVolumeClaim:
  178. claimName: nm-pvc
  179. ---
  180. apiVersion: v1
  181. kind: Service
  182. metadata:
  183. labels:
  184. app: netmaker-dns
  185. name: netmaker-dns
  186. spec:
  187. ports:
  188. - port: 53
  189. protocol: UDP
  190. targetPort: 53
  191. name: udp
  192. - port: 53
  193. protocol: TCP
  194. targetPort: 53
  195. name: tcp
  196. selector:
  197. app: netmaker-dns
  198. sessionAffinity: None
  199. type: ClusterIP
  200. clusterIP: 10.152.183.53
  201. ---
  202. apiVersion: apps/v1
  203. kind: Deployment
  204. metadata:
  205. name: netmaker-ui
  206. labels:
  207. app: netmaker-ui
  208. spec:
  209. selector:
  210. matchLabels:
  211. app: netmaker-ui
  212. replicas: 1
  213. template:
  214. metadata:
  215. labels:
  216. app: netmaker-ui
  217. spec:
  218. containers:
  219. - name: netmaker-ui
  220. image: gravitl/netmaker-ui:v0.7
  221. ports:
  222. - containerPort: 80
  223. env:
  224. - name: BACKEND_URL
  225. value: "https://api.NETMAKER_BASE_DOMAIN"
  226. ---
  227. apiVersion: v1
  228. kind: Service
  229. metadata:
  230. labels:
  231. app: netmaker-ui
  232. name: netmaker-ui
  233. spec:
  234. ports:
  235. - port: 80
  236. protocol: TCP
  237. targetPort: 80
  238. selector:
  239. app: netmaker-ui
  240. sessionAffinity: None
  241. type: ClusterIP
  242. ---
  243. apiVersion: networking.k8s.io/v1
  244. kind: Ingress
  245. metadata:
  246. name: nm-api-ingress-nginx
  247. annotations:
  248. nginx.ingress.kubernetes.io/rewrite-target: /
  249. cert-manager.io/cluster-issuer: "letsencrypt-prod"
  250. nginx.ingress.kubernetes.io/ssl-redirect: 'true'
  251. spec:
  252. ingressClassName: nginx
  253. tls:
  254. - hosts:
  255. - api.NETMAKER_BASE_DOMAIN
  256. secretName: nm-api-tls
  257. rules:
  258. - host: api.NETMAKER_BASE_DOMAIN
  259. http:
  260. paths:
  261. - path: /
  262. pathType: Prefix
  263. backend:
  264. service:
  265. name: netmaker-api
  266. port:
  267. number: 8081
  268. ---
  269. apiVersion: networking.k8s.io/v1
  270. kind: Ingress
  271. metadata:
  272. name: nm-grpc-ingress-nginx
  273. annotations:
  274. cert-manager.io/cluster-issuer: "letsencrypt-prod"
  275. nginx.ingress.kubernetes.io/ssl-redirect: 'true'
  276. nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
  277. spec:
  278. ingressClassName: nginx
  279. tls:
  280. - hosts:
  281. - grpc.NETMAKER_BASE_DOMAIN
  282. secretName: nm-grpc-tls
  283. rules:
  284. - host: grpc.NETMAKER_BASE_DOMAIN
  285. http:
  286. paths:
  287. - path: /
  288. pathType: Prefix
  289. backend:
  290. service:
  291. name: netmaker-grpc
  292. port:
  293. number: 443
  294. ---
  295. apiVersion: networking.k8s.io/v1
  296. kind: Ingress
  297. metadata:
  298. name: nm-ui-ingress-nginx
  299. annotations:
  300. nginx.ingress.kubernetes.io/rewrite-target: /
  301. cert-manager.io/cluster-issuer: "letsencrypt-prod"
  302. nginx.ingress.kubernetes.io/ssl-redirect: 'true'
  303. spec:
  304. ingressClassName: nginx
  305. tls:
  306. - hosts:
  307. - dashboard.NETMAKER_BASE_DOMAIN
  308. secretName: nm-ui-tls
  309. rules:
  310. - host: dashboard.NETMAKER_BASE_DOMAIN
  311. http:
  312. paths:
  313. - path: /
  314. pathType: Prefix
  315. backend:
  316. service:
  317. name: netmaker-ui
  318. port:
  319. number: 80