netmaker-template-udp.yaml 7.6 KB

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