cloudflared.yaml 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. # https://github.com/cloudflare/argo-tunnel-examples/blob/master/named-tunnel-k8s/cloudflared.yaml
  2. ---
  3. apiVersion: apps/v1
  4. kind: Deployment
  5. metadata:
  6. name: cloudflared
  7. namespace: kube-system
  8. spec:
  9. selector:
  10. matchLabels:
  11. app: cloudflared
  12. replicas: 3
  13. template:
  14. metadata:
  15. labels:
  16. app: cloudflared
  17. spec:
  18. containers:
  19. - name: cloudflared
  20. image: cloudflare/cloudflared:latest
  21. args:
  22. - tunnel
  23. - --config
  24. - /etc/cloudflared/config/config.yaml
  25. - run
  26. ports:
  27. - containerPort: 2000
  28. name: metrics
  29. livenessProbe:
  30. httpGet:
  31. path: /ready
  32. port: 2000
  33. failureThreshold: 3
  34. initialDelaySeconds: 10
  35. periodSeconds: 10
  36. timeoutSeconds: 5
  37. volumeMounts:
  38. - name: config
  39. mountPath: /etc/cloudflared/config
  40. readOnly: true
  41. - name: creds
  42. mountPath: /etc/cloudflared/creds
  43. readOnly: true
  44. volumes:
  45. - name: creds
  46. secret:
  47. secretName: tunnel-credentials
  48. - name: config
  49. configMap:
  50. name: cloudflared
  51. items:
  52. - key: config.yaml
  53. path: config.yaml
  54. ---
  55. apiVersion: v1
  56. kind: ConfigMap
  57. metadata:
  58. name: cloudflared
  59. namespace: kube-system
  60. data:
  61. config.yaml: |
  62. tunnel: example-tunnel
  63. credentials-file: /etc/cloudflared/creds/credentials.json
  64. metrics: 0.0.0.0:2000
  65. ingress:
  66. - hostname: gogs.jibby.org
  67. service: http://gogs-service.gogs.svc.cluster.local:3000
  68. - hostname: miniflux.jibby.org
  69. service: http://miniflux-service.miniflux.svc.cluster.local:8080
  70. - hostname: ntfy-alertmanager.jibby.org
  71. service: http://ntfy-alertmanager.monitoring.svc.cluster.local:80
  72. - hostname: homeassistant.jibby.org
  73. service: http://homeassistant-service.homeassistant.svc.cluster.local:8123
  74. - hostname: ntfy.jibby.org
  75. service: http://ntfy-service.ntfy.svc.cluster.local:80
  76. - hostname: paperless.jibby.org
  77. service: http://paperless-service.paperless.svc.cluster.local:8000
  78. - hostname: tronbyt.jibby.org
  79. service: http://tronbyt-service.tronbyt.svc.cluster.local:8000
  80. - hostname: uptime.jibby.org
  81. service: http://uptime-kuma-service.uptime-kuma.svc.cluster.local:3001
  82. - hostname: status.jibby.org
  83. service: http://uptime-kuma-service.uptime-kuma.svc.cluster.local:3001
  84. - hostname: argocd.jibby.org
  85. path: api/badge
  86. service: http://argocd-server.argocd.svc.cluster.local:80
  87. - service: http_status:404
  88. ---
  89. apiVersion: external-secrets.io/v1
  90. kind: ExternalSecret
  91. metadata:
  92. name: tunnel-credentials
  93. namespace: kube-system
  94. spec:
  95. target:
  96. name: tunnel-credentials
  97. deletionPolicy: Delete
  98. template:
  99. type: Opaque
  100. data:
  101. credentials.json: |-
  102. {{ .credentials }}
  103. data:
  104. - secretKey: credentials
  105. sourceRef:
  106. storeRef:
  107. name: bitwarden-notes
  108. kind: ClusterSecretStore
  109. remoteRef:
  110. key: 4a0b91df-6fcb-4dc1-a0b7-b3f800730cc1