netmaker-template-udp.yaml 7.3 KB

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