Kaniko mit Custom CA Certificates
Damit Kaniko mit einer eigenen Registry verwendet werden kann, die TLS Zertifikate von einer eigenen Certificate Authority (CA) verwendet, wird ein eigenes Kaniko Container-Image benötigt. Wenn darin die passenden Zertifikate enthalten sind, kann Kaniko auf die Registry ohne Probleme zugreifen.
Dieses Beispiel baut auf dem vorherigen Beitrag auf und verwendet daher schon ein spezielles Kaniko Image für ARM Maschinen.
Im Prinzip ist das Vorgehen einfach:
Das CA Zertifikat muss den vertrauenswürdigen Zertifikaten im Kaniko Image hinzugefügt werden.
Kaniko erwartet die Zertifikate in /kaniko/ssl/certs/ca-certificates.crt, sodass hier ein CA Zertifikat problemlos ergänzt werden kann.
Je nachdem, welche Quelle für das Zertifikat dient, muss es in den Build-Container kopiert werden bzw. aus der Umgebung konfiguriert werden.
Im Beispiel wird die Kubernetes CA verwendet, so dass sich das CA Zertifikat in /var/run/secrets/kubernetes.io/serviceaccount/ca.crt befindet.
Das für den Build erforderliche Dockerfile wird als Kubernetes-ConfigMap bereitgestellt.
So sieht der Kubernetes Build-Job als YAML dann aus:
build.yaml[]
Der Build erfolgt dann dadurch, dass der Job in Kubernetes angelegt wird. Nach erfolgreichem Build kann der Job und die ConfigMap wieder entfernt werden.
$ kubectl apply -f build.yaml
configmap/kaniko-ca-dockerfile created
job.batch/kaniko-build created
# warten oder Logs verfolgen...
$ kubectl delete -f build.yaml
configmap "kaniko-ca-dockerfile" deleted
job.batch "kaniko-build" deleted
Das so gebaute Image ist nun in der Registry verfügbar und kann für Kaniko-Builds verwendet werden.
Zu den Themen Kubernetes, Docker und Cloud Architektur bieten wir sowohl Beratung, Entwicklungsunterstützung als auch passende Schulungen an:
Auch für Ihren individuellen Bedarf können wir Workshops und Schulungen anbieten. Sprechen Sie uns gerne an.