cert-manager
TLS証明書の取得と更新を自動化するKubernetesコントローラー。日曜日に証明書が切れるという恒例のインシデントを終わらせた。
ドメイン名と使う発行者を書いたCertificateを宣言すれば、あとはコントローラーが証明書の要求、チャレンジの処理、結果のSecretへの保存、期限のかなり前の更新までやってくれる。発行者はネームスペース単位のIssuerか、クラスター全体のClusterIssuerで、Let's EncryptのACME、社内CA、HashiCorp Vault、自己署名のいずれでもよい。ACMEのチャレンジは、Ingressの背後に一時的にファイルを置くHTTP-01か、ワイルドカードに必須でDNSゾーンへのアクセスが要るDNS-01で解く。プロジェクトはJetstackのkube-legoとして始まり、今はCNCFのgraduatedプロジェクトである。