Google Container Engine (GCE) HTTP(S) Load Balancer mit Intermediate Zertifikat

Da ich zu diesem Thema im Internet keine Anleitung gefunden habe fasse ich meine funktionierende Lösung hier zusammen.
Die Aufgabenstellung war es, über die Kubernetes Konfiguration den Google HTTP/HTTPS Loadbalancer korrekt zu erstellen. Entgegen aller Beispiele und Dokumentationen gibt es ein A+ bei Qualys SSL Labs nur mit der Bereitstellung des Intermediate Zertifikats.

Benötigt werden zwei Dateien. Die erste Datei enthält das Zertifikat und das Intermediate Zertifikat in altbekannter Schreibweise (ohne Leer- und Freizeichen):

    -----BEGIN CERTIFICATE-----
    abc123
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    abc123
    -----END CERTIFICATE-----

Die zweite den Private Key:

    -----BEGIN PRIVATE KEY-----
    abc123
    -----END PRIVATE KEY-----

Nun werden beide Dateien jeweils für sich base64 enkodiert. Hier gibt es entsprechende Tools unter Linux, Mac, Windows, aber auch Online (denen muss man dann allerdings auch trauen wenn man seinen private Key dort umwandelt). Heraus kommt jeweils ein ASCII Haufen.

Diesen packt man nun in ein Kubernetes Secret Objekt.

    apiVersion: v1
    kind: Secret
    data:
      tls.crt: "AAABBBCCC"
      tls.key: "BBBCCCDDD"
    metadata:
      name: tls
    type: Opaque

Entsprechendes Objekt referenziert man in einem Ingress Objekt.

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: Ingress-tls
    spec:
      tls:
      - secretName: tls
      backend:
        serviceName: webserver
        servicePort: 80

Ergebnis ist ein Google HTTP(S) Loadbalancer der HTTPS terminiert.