config/recipes/traefik/05-ingress-route.yaml (50 lines of code) (raw):

--- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: hulk-elastic-stack spec: entryPoints: - websecure routes: - match: "Host(`elasticsearch.hulk`) && ((PathPrefix(`/_search`) && Method(`POST`)) || Method(`GET`))" kind: Rule services: - name: hulk-elasticsearch-read port: 9200 scheme: https middlewares: - name: hulk-middleware-chain - match: "Host(`elasticsearch.hulk`) && Method(`DELETE`,`POST`,`PUT`)" kind: Rule services: - name: hulk-elasticsearch-write port: 9200 scheme: https middlewares: - name: hulk-middleware-chain - match: "Host(`kibana.hulk`)" kind: Rule services: - name: hulk-kb-http port: 5601 scheme: https middlewares: - name: hulk-middleware-chain - match: "Host(`apm.hulk`)" kind: Rule services: - name: hulk-apm-http port: 8200 scheme: https middlewares: - name: hulk-ip-whitelist - name: hulk-circuit-breaker - name: hulk-apm-ratelimit tls: secretName: hulk-certs domains: - sans: - "elasticsearch.hulk" - "kibana.hulk" - "apm.hulk"