Goでのcert-managerのインポート
cert-managerはGoで記述されており、Goモジュールを使用します。Goモジュールとしてインポートすることもでき、場合によってはそれで問題ない、あるいは推奨される場合もありますが、原則としてcert-managerをインポートすることはお勧めしません。
一般的に言って、cert-managerをインポートする可能性のある場合で以下にリストされているケースを除き、cert-managerリポジトリのコードは、Goモジュールの互換性保証の対象外です。cert-managerのマイナーリリースやパッチリリースであっても、公開されているGoコードであっても、破壊的な変更を行う可能性がありますし、実際に行います。過去にもこのような破壊的な変更を行ったことがあります。
これは、cert-managerの実行には影響しないことに注意してください。互換性に関する私たちのコミットメントは、cert-managerのランタイム機能を壊さないことであり、それを真剣に受け止めています。
もし、cert-managerをモジュールとしてインポートする必要があるという確信がある場合は、以下のモジュールインポートパスでその方法に関する注意点をご覧ください。
cert-managerをインポートする可能性のある場合
Goコードで以下のような場合、cert-managerをインポートする必要があるかもしれません。
- cert-managerのカスタムリソースを使用しているため、
pkg/apis
以下をインポートしたい場合 - webhook-exampleのように、外部DNSソルバーのwebhookを実装する場合
- sample-external-issuerのように、外部イシューアーを実装する場合
もし、コードの他の部分を本当にインポートする必要があると思われる場合は、私たちに連絡してご相談ください。そうすれば、このニーズを認識することができます!可能な限り、破壊的な変更を避けるように努めます。
モジュールインポートパス
cert-managerのサポートされているすべてのバージョンでは、モジュールインポートパスはgithub.com/cert-manager/cert-manager
です。
歴史的に、cert-managerリポジトリはGitHub上でhttps://github.com/jetstack/cert-manager
として作成され、後でhttps://github.com/cert-manager/cert-manager
に移行されました。
つまり、古いバージョンのcert-managerを使用しようとしている場合、必要なGoモジュールインポートパスが異なる可能性があります。
cert-manager 1.8以降では、上記にリストされている新しいパスを使用してください。
cert-managerバージョン1.8より前の場合は、古いパスを使用してください:github.com/jetstack/cert-manager