ingress.yaml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429
  1. apiVersion: networking.k8s.io/v1
  2. kind: Ingress
  3. metadata:
  4. name: nas-ingress
  5. annotations:
  6. cert-manager.io/cluster-issuer: "letsencrypt"
  7. acme.cert-manager.io/http01-edit-in-place: "true"
  8. nginx.org/client-max-body-size: "500m"
  9. nginx.org/proxy-connect-timeout: "60s"
  10. nginx.org/proxy-read-timeout: "60s"
  11. nginx.org/hsts: "True"
  12. nginx.org/hsts-max-age: "15552000"
  13. # Uncomment to allow solving HTTP01 challenge
  14. ingress.kubernetes.io/ssl-redirect: "true"
  15. nginx.org/redirect-to-https: "false"
  16. spec:
  17. tls:
  18. - hosts:
  19. - nas.dodges.it
  20. secretName: nas-le-secret
  21. rules:
  22. - host: nas.dodges.it
  23. http:
  24. paths:
  25. - path: /
  26. pathType: Prefix
  27. backend:
  28. service:
  29. name: nas
  30. port:
  31. number: 80
  32. ingressClassName: nginx
  33. ---
  34. apiVersion: networking.k8s.io/v1
  35. kind: Ingress
  36. metadata:
  37. name: pihole-ingress
  38. annotations:
  39. cert-manager.io/cluster-issuer: "letsencrypt"
  40. acme.cert-manager.io/http01-edit-in-place: "true"
  41. nginx.org/client-max-body-size: "500m"
  42. nginx.org/proxy-connect-timeout: "60s"
  43. nginx.org/proxy-read-timeout: "60s"
  44. nginx.org/hsts: "True"
  45. nginx.org/hsts-max-age: "15552000"
  46. # Uncomment to allow solving HTTP01 challenge
  47. ingress.kubernetes.io/ssl-redirect: "true"
  48. nginx.org/redirect-to-https: "false"
  49. spec:
  50. tls:
  51. - hosts:
  52. - dns.dodges.it
  53. secretName: dns-le-secret
  54. rules:
  55. - host: dns.dodges.it
  56. http:
  57. paths:
  58. - path: /
  59. pathType: Prefix
  60. backend:
  61. service:
  62. name: pihole
  63. port:
  64. number: 80
  65. ingressClassName: nginx
  66. ---
  67. apiVersion: networking.k8s.io/v1
  68. kind: Ingress
  69. metadata:
  70. name: gogs-ingress
  71. annotations:
  72. cert-manager.io/cluster-issuer: "letsencrypt"
  73. acme.cert-manager.io/http01-edit-in-place: "true"
  74. nginx.org/client-max-body-size: "500m"
  75. nginx.org/proxy-connect-timeout: "60s"
  76. nginx.org/proxy-read-timeout: "60s"
  77. nginx.org/hsts: "True"
  78. nginx.org/hsts-max-age: "15552000"
  79. # Uncomment to allow solving HTTP01 challenge
  80. #ingress.kubernetes.io/ssl-redirect: "true"
  81. #nginx.org/redirect-to-https: "false"
  82. spec:
  83. tls:
  84. - hosts:
  85. - gogs.dodges.it
  86. secretName: gogs-le-secret
  87. rules:
  88. - host: gogs.dodges.it
  89. http:
  90. paths:
  91. - path: /
  92. pathType: Prefix
  93. backend:
  94. service:
  95. name: gogs
  96. port:
  97. number: 50001
  98. ingressClassName: nginx
  99. ---
  100. apiVersion: networking.k8s.io/v1
  101. kind: Ingress
  102. metadata:
  103. name: ng-ingress
  104. annotations:
  105. nginx.org/client-max-body-size: "4096m"
  106. nginx.org/proxy-connect-timeout: "500s"
  107. nginx.org/proxy-read-timeout: "500s"
  108. nginx.org/proxy-send-timeout: "500s"
  109. nginx.org/hsts: "True"
  110. nginx.org/hsts-max-age: "15552000"
  111. # Prevent nginx HTTP Server Detection
  112. nginx.org/server-tokens: "False"
  113. # Uncomment to allow solving HTTP01 challenge
  114. #ingress.kubernetes.io/ssl-redirect: "true"
  115. #nginx.org/redirect-to-https: "false"
  116. acme.cert-manager.io/http01-edit-in-place: "true"
  117. cert-manager.io/cluster-issuer: "letsencrypt"
  118. # Enable CalDAV and WebDAV to work. Might break ACME challenge?
  119. nginx.org/server-snippets: |
  120. location = /.well-known/carddav { return 301 /remote.php/dav/; }
  121. location = /.well-known/caldav { return 301 /remote.php/dav/; }
  122. fastcgi_buffers 64 4K;
  123. gzip on;
  124. gzip_vary on;
  125. gzip_comp_level 4;
  126. gzip_min_length 256;
  127. gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
  128. gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
  129. spec:
  130. tls:
  131. - hosts:
  132. - ng.dodges.it
  133. secretName: ng-le-secret
  134. rules:
  135. - host: ng.dodges.it
  136. http:
  137. paths:
  138. - path: /
  139. pathType: Prefix
  140. backend:
  141. service:
  142. name: nextcloud
  143. port:
  144. number: 50011
  145. ingressClassName: nginx
  146. ---
  147. apiVersion: networking.k8s.io/v1
  148. kind: Ingress
  149. metadata:
  150. name: db-ingress
  151. annotations:
  152. cert-manager.io/cluster-issuer: "letsencrypt"
  153. acme.cert-manager.io/http01-edit-in-place: "true"
  154. nginx.org/hsts: "True"
  155. nginx.org/hsts-max-age: "15552000"
  156. # Uncomment to allow solving HTTP01 challenge
  157. #ingress.kubernetes.io/ssl-redirect: "true"
  158. #nginx.org/redirect-to-https: "false"
  159. spec:
  160. tls:
  161. - hosts:
  162. - db.dodges.it
  163. secretName: db-le-secret
  164. rules:
  165. - host: db.dodges.it
  166. http:
  167. paths:
  168. - path: /
  169. pathType: Prefix
  170. backend:
  171. service:
  172. name: phpmyadmin
  173. port:
  174. number: 50003
  175. ingressClassName: nginx
  176. ---
  177. apiVersion: networking.k8s.io/v1
  178. kind: Ingress
  179. metadata:
  180. name: trt-ingress
  181. annotations:
  182. # Uncomment to allow solving HTTP01 challenge
  183. ingress.kubernetes.io/ssl-redirect: "true"
  184. nginx.org/redirect-to-https: "true"
  185. acme.cert-manager.io/http01-edit-in-place: "true"
  186. cert-manager.io/cluster-issuer: "letsencrypt"
  187. nginx.org/basic-auth-secret: transmission-secret
  188. nginx.org/hsts: "true"
  189. nginx.org/hsts-max-age: "15552000"
  190. spec:
  191. tls:
  192. - hosts:
  193. - trt.dodges.it
  194. secretName: trt-le-secret
  195. rules:
  196. - host: trt.dodges.it
  197. http:
  198. paths:
  199. - path: /
  200. pathType: Prefix
  201. backend:
  202. service:
  203. name: transmission
  204. port:
  205. number: 9091
  206. ingressClassName: nginx
  207. ---
  208. apiVersion: networking.k8s.io/v1
  209. kind: Ingress
  210. metadata:
  211. name: lang-ingress
  212. annotations:
  213. cert-manager.io/cluster-issuer: "letsencrypt"
  214. acme.cert-manager.io/http01-edit-in-place: "true"
  215. nginx.org/client-max-body-size: "500m"
  216. nginx.org/proxy-connect-timeout: "60s"
  217. nginx.org/proxy-read-timeout: "60s"
  218. nginx.org/hsts: "True"
  219. nginx.org/hsts-max-age: "15552000"
  220. # Uncomment to allow solving HTTP01 challenge
  221. #ingress.kubernetes.io/ssl-redirect: "true"
  222. #nginx.org/redirect-to-https: "false"
  223. spec:
  224. tls:
  225. - hosts:
  226. - lang-dev.dodges.it
  227. secretName: lang-le-secret
  228. rules:
  229. - host: lang-dev.dodges.it
  230. http:
  231. paths:
  232. - path: /api
  233. pathType: Prefix
  234. backend:
  235. service:
  236. name: languagetandem
  237. port:
  238. number: 8000
  239. - path: /
  240. pathType: Prefix
  241. backend:
  242. service:
  243. name: languagetandem-fe
  244. port:
  245. number: 80
  246. ingressClassName: nginx
  247. ---
  248. apiVersion: networking.k8s.io/v1
  249. kind: Ingress
  250. metadata:
  251. name: homeassistant-ingress
  252. annotations:
  253. cert-manager.io/cluster-issuer: "letsencrypt"
  254. acme.cert-manager.io/http01-edit-in-place: "true"
  255. nginx.org/client-max-body-size: "500m"
  256. nginx.org/proxy-connect-timeout: "60s"
  257. nginx.org/proxy-read-timeout: "60s"
  258. nginx.org/hsts: "True"
  259. nginx.org/hsts-max-age: "15552000"
  260. # Uncomment to allow solving HTTP01 challenge
  261. nginx.org/redirect-to-https: "true"
  262. nginx.org/location-snippets: |
  263. proxy_set_header Upgrade $http_upgrade;
  264. proxy_set_header Connection "upgrade";
  265. spec:
  266. tls:
  267. - hosts:
  268. - ha.dodges.it
  269. secretName: ha-le-secret
  270. rules:
  271. - host: ha.dodges.it
  272. http:
  273. paths:
  274. - path: /
  275. pathType: Prefix
  276. backend:
  277. service:
  278. name: homeassistant
  279. port:
  280. number: 8123
  281. ingressClassName: nginx
  282. ---
  283. apiVersion: networking.k8s.io/v1
  284. kind: Ingress
  285. metadata:
  286. name: cyberchef-ingress
  287. annotations:
  288. cert-manager.io/cluster-issuer: "letsencrypt"
  289. acme.cert-manager.io/http01-edit-in-place: "true"
  290. nginx.org/client-max-body-size: "500m"
  291. nginx.org/proxy-connect-timeout: "60s"
  292. nginx.org/proxy-read-timeout: "60s"
  293. nginx.org/hsts: "True"
  294. nginx.org/hsts-max-age: "15552000"
  295. # Uncomment to allow solving HTTP01 challenge
  296. ingress.kubernetes.io/ssl-redirect: "true"
  297. nginx.org/redirect-to-https: "false"
  298. spec:
  299. tls:
  300. - hosts:
  301. - cc.dodges.it
  302. secretName: cc-le-secret
  303. rules:
  304. - host: cc.dodges.it
  305. http:
  306. paths:
  307. - path: /
  308. pathType: Prefix
  309. backend:
  310. service:
  311. name: cyberchef
  312. port:
  313. number: 80
  314. ingressClassName: nginx
  315. ---
  316. apiVersion: networking.k8s.io/v1
  317. kind: Ingress
  318. metadata:
  319. name: evil-ingress
  320. annotations:
  321. cert-manager.io/cluster-issuer: "letsencrypt"
  322. acme.cert-manager.io/http01-edit-in-place: "true"
  323. nginx.org/client-max-body-size: "500m"
  324. nginx.org/proxy-connect-timeout: "60s"
  325. nginx.org/proxy-read-timeout: "60s"
  326. nginx.org/hsts: "True"
  327. nginx.org/hsts-max-age: "15552000"
  328. # Uncomment to allow solving HTTP01 challenge
  329. ingress.kubernetes.io/ssl-redirect: "true"
  330. nginx.org/redirect-to-https: "false"
  331. nginx.org/location-snippets: |
  332. if ($request_method = 'POST') {
  333. add_header 'Access-Control-Allow-Origin' '*';
  334. add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT';
  335. add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
  336. }
  337. if ($request_method = 'OPTIONS') {
  338. add_header 'Access-Control-Allow-Origin' '*';
  339. add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT';
  340. add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
  341. add_header 'Access-Control-Max-Age' 1728000;
  342. add_header 'Content-Type' 'text/plain; charset=utf-8';
  343. add_header 'Content-Length' 0;
  344. return 204;
  345. }
  346. spec:
  347. tls:
  348. - hosts:
  349. - evil.dodges.it
  350. secretName: evil-le-secret
  351. rules:
  352. - host: evil.dodges.it
  353. http:
  354. paths:
  355. - path: /
  356. pathType: Prefix
  357. backend:
  358. service:
  359. name: evil
  360. port:
  361. number: 80
  362. ingressClassName: nginx
  363. ---
  364. apiVersion: networking.k8s.io/v1
  365. kind: Ingress
  366. metadata:
  367. name: nc-ingress
  368. annotations:
  369. cert-manager.io/cluster-issuer: "letsencrypt"
  370. acme.cert-manager.io/http01-edit-in-place: "true"
  371. nginx.org/client-max-body-size: "500m"
  372. nginx.org/proxy-connect-timeout: "60s"
  373. nginx.org/proxy-read-timeout: "60s"
  374. nginx.org/hsts: "False"
  375. # Uncomment to allow solving HTTP01 challenge
  376. ingress.kubernetes.io/ssl-redirect: "true"
  377. nginx.org/redirect-to-https: "false"
  378. spec:
  379. tls:
  380. - hosts:
  381. - nc.dodges.it
  382. secretName: nc-le-secret
  383. rules:
  384. - host: nc.dodges.it
  385. http:
  386. paths:
  387. - path: /
  388. pathType: Prefix
  389. backend:
  390. service:
  391. name: nc
  392. port:
  393. number: 8080
  394. ingressClassName: nginx
  395. ---
  396. apiVersion: networking.k8s.io/v1
  397. kind: Ingress
  398. metadata:
  399. name: gradewhisperer-ingress
  400. annotations:
  401. cert-manager.io/cluster-issuer: "letsencrypt"
  402. acme.cert-manager.io/http01-edit-in-place: "true"
  403. nginx.org/client-max-body-size: "500m"
  404. nginx.org/proxy-connect-timeout: "60s"
  405. nginx.org/proxy-read-timeout: "60s"
  406. nginx.org/hsts: "False"
  407. # Uncomment to allow solving HTTP01 challenge
  408. ingress.kubernetes.io/ssl-redirect: "true"
  409. nginx.org/redirect-to-https: "false"
  410. spec:
  411. tls:
  412. - hosts:
  413. - gradewhisperer.dodges.it
  414. secretName: gradewhisperer-le-secret
  415. rules:
  416. - host: gradewhisperer.dodges.it
  417. http:
  418. paths:
  419. - path: /
  420. pathType: Prefix
  421. backend:
  422. service:
  423. name: gradewhisperer
  424. port:
  425. number: 80
  426. ingressClassName: nginx