Skip to content

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
Back to top