feat: add traefik
This commit is contained in:
100
traefik/traefik-config.yaml
Normal file
100
traefik/traefik-config.yaml
Normal file
@@ -0,0 +1,100 @@
|
||||
apiVersion: helm.cattle.io/v1
|
||||
kind: HelmChartConfig
|
||||
metadata:
|
||||
name: traefik
|
||||
namespace: kube-system
|
||||
spec:
|
||||
valuesContent: |-
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: k3sh0
|
||||
providers:
|
||||
kubernetesCRD:
|
||||
allowCrossNamespace: true
|
||||
certResolvers:
|
||||
letsencrypt:
|
||||
email: admin@t00n.de
|
||||
dnsChallenge:
|
||||
provider: ionos
|
||||
delayBeforeCheck: 60
|
||||
resolvers:
|
||||
- 1.1.1.1
|
||||
storage: /data/acme-ionos.json
|
||||
ingressRoute:
|
||||
dashboard:
|
||||
enabled: true
|
||||
matchRule: Host(`traefik.monitor.k8s.t000-n.de`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))
|
||||
middlewares:
|
||||
- name: localipfilter
|
||||
entryPoints: ["websecure"]
|
||||
env:
|
||||
- name: IONOS_API_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: apiKey
|
||||
name: ionos-api-credentials
|
||||
- name: CROWDSEC_BOUNCER_API_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: crowdsec-bouncer-api-key
|
||||
key: api-key
|
||||
ports:
|
||||
web:
|
||||
port: 8000
|
||||
expose: true
|
||||
exposedPort: 80
|
||||
nodePort: 32080
|
||||
websecure:
|
||||
port: 8443
|
||||
expose: true
|
||||
exposedPort: 443
|
||||
nodePort: 32443
|
||||
tls:
|
||||
enabled: true
|
||||
certResolver: "letsencrypt"
|
||||
service:
|
||||
enabled: true
|
||||
single: true
|
||||
type: LoadBalancer
|
||||
spec:
|
||||
externalTrafficPolicy: Local
|
||||
externalIPs:
|
||||
- 192.168.0.50
|
||||
- 192.168.0.51
|
||||
- 192.168.0.52
|
||||
- 192.168.0.53
|
||||
persistence:
|
||||
enabled: true
|
||||
name: data
|
||||
accessMode: ReadWriteMany
|
||||
size: 1Gi
|
||||
storageClass: longhorn
|
||||
path: /data
|
||||
extraObjects:
|
||||
- apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: localipfilter
|
||||
namespace: kube-system
|
||||
spec:
|
||||
ipWhiteList:
|
||||
sourceRange:
|
||||
- 192.168.0.0/24
|
||||
- 172.16.0.0/16
|
||||
- 10.0.0.0/8
|
||||
- apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: adminbasicauth
|
||||
namespace: kube-system
|
||||
spec:
|
||||
basicAuth:
|
||||
secret: adminbasicauthsecret
|
||||
experimental:
|
||||
plugins:
|
||||
crowdsec-bouncer-traefik-plugin:
|
||||
moduleName: github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin
|
||||
version: v1.4.6
|
||||
additionalArguments:
|
||||
- "--providers.kubernetescrd"
|
||||
- "--entrypoints.web.http.middlewares=crowdsec-bouncer@kubernetescrd"
|
||||
- "--entrypoints.websecure.http.middlewares=internal-crowdsec-bouncer@kubernetescrd"
|
||||
Reference in New Issue
Block a user