dav.yaml 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. ---
  2. apiVersion: apps/v1
  3. kind: Deployment
  4. metadata:
  5. name: dav-deployment
  6. namespace: default
  7. labels:
  8. app: dav
  9. spec:
  10. replicas: 1
  11. selector:
  12. matchLabels:
  13. app: dav
  14. template:
  15. metadata:
  16. labels:
  17. app: dav
  18. spec:
  19. containers:
  20. - image: tomsquest/docker-radicale:3.1.8.0
  21. name: radicale
  22. imagePullPolicy: IfNotPresent
  23. ports:
  24. - containerPort: 5232
  25. volumeMounts:
  26. - name: radicale-data-vol
  27. mountPath: /data
  28. - name: radicale-config-vol
  29. mountPath: /config
  30. volumes:
  31. - name: radicale-data-vol
  32. hostPath:
  33. path: /mnt/radicale/data
  34. type: Directory
  35. - name: radicale-config-vol
  36. hostPath:
  37. path: /mnt/radicale/config
  38. type: Directory
  39. ---
  40. apiVersion: v1
  41. kind: Service
  42. metadata:
  43. name: dav
  44. namespace: default
  45. labels:
  46. app: dav
  47. spec:
  48. type: ClusterIP
  49. selector:
  50. app: dav
  51. ports:
  52. - port: 80
  53. targetPort: 5232
  54. ---
  55. apiVersion: cert-manager.io/v1
  56. kind: Certificate
  57. metadata:
  58. name: dav.bodicsek.host
  59. spec:
  60. secretName: dav.bodicsek.host
  61. issuerRef:
  62. name: letsencrypt-prod
  63. kind: ClusterIssuer
  64. dnsNames:
  65. - dav.bodicsek.host
  66. ---
  67. apiVersion: traefik.containo.us/v1alpha1
  68. kind: IngressRoute
  69. metadata:
  70. name: dav
  71. namespace: default
  72. spec:
  73. entryPoints:
  74. - websecure
  75. routes:
  76. - kind: Rule
  77. match: Host(`dav.bodicsek.host`)
  78. services:
  79. - kind: Service
  80. name: dav
  81. namespace: default
  82. passHostHeader: true
  83. port: 80
  84. tls:
  85. secretName: dav.bodicsek.host