apiVersion: v1 kind: Service metadata: { name: kibana, namespace: elastic } spec: ports: [{ port: 5601, targetPort: 5601 }] selector: { app: kibana } --- apiVersion: apps/v1 kind: Deployment metadata: { name: kibana, namespace: elastic } spec: replicas: 1 selector: { matchLabels: { app: kibana } } template: metadata: { labels: { app: kibana } } spec: nodeSelector: { node: hetzner-2 } containers: - name: kibana image: docker.elastic.co/kibana/kibana:8.14.0 env: - { name: ELASTICSEARCH_HOSTS, value: "http://elasticsearch.elastic.svc.cluster.local:9200" } ports: [{ containerPort: 5601 }] --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: kibana namespace: elastic annotations: cert-manager.io/cluster-issuer: letsencrypt-prod # nginx.ingress.kubernetes.io/auth-type: basic # nginx.ingress.kubernetes.io/auth-secret: basic-auth-kibana # nginx.ingress.kubernetes.io/auth-realm: "Authentication Required" spec: ingressClassName: nginx tls: [{ hosts: ["kibana.betelgeusebytes.io"], secretName: kibana-tls }] rules: - host: kibana.betelgeusebytes.io http: paths: - path: / pathType: Prefix backend: { service: { name: kibana, port: { number: 5601 } } }