Ingress nginx basic authentication
Create a secret for user gast.
$ htpasswd -nb 'gast' 'very-secret' | base64
Z2FzdDokYXByMSRtMTMzLkduSyR3Z1owbzJpN3dqcUFIVy5PSzNwTGkuCgo=
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: basic-auth
data:
auth: "Z2FzdDokYXByMSRtMTMzLkduSyR3Z1owbzJpN3dqcUFIVy5PSzNwTGkuCgo="
---
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: site.eu
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: "letsencrypt-production"
nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/auth-secret: basic-auth
nginx.ingress.kubernetes.io/auth-realm: "Authentication Required"
spec:
tls:
- hosts:
- site.eu
secretName: site.eu-tls
rules:
- host: site.eu
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx
port:
number: 80