2017-07-13 2 views
2

私はmysqlユーザの操作に取り組んでいますが、何か問題を報告する適切な方法は何かに固執しています。私のカスタムオペレータが失敗した場合のイベントはどこに提出しますか?

CRDでMysqlUserを監視し、指定されたDBにSecretとmysqlユーザーを作成する予定です。明らかに、いずれかが間違っている可能性があります。その時点でエラーを報告する必要があります。

status.conditionsの一部のk8sオブジェクトトラックイベント。 Eventオブジェクトもありますが、私はkubelet/controllermanagerで使用されているものだけを見てきました。

オペレータがmysqlと話すことができないため、mysqlユーザの作成に問題がありますが、そうでなければCRDは有効です。イベントまたはCRDのステータスに行く必要がありますか?

+0

あなたの計画について興味があります:あなたはどのようにCRDを見る予定ですか?それはあなたがデータベースに反映する秘密ですか? –

+0

CRDはユーザ名を定義し、オペレータはランダムなパスワードをシークレットに書き込み、DBをプロビジョニングします。今のところ、ユーザー名とDB名の間に1:1のマッピングがあります – Farcaller

答えて

1

CRDにはまだステータス部分(1.7)がありません。イベントを通じた通知は完全にうまくいきます。なぜなら、それらを最初に持つ理由です。

1

これは、ボリュームのプラグイン(kubelet)から報告されたイベントと似ています。たとえば、kubeletは、サーバアドレスが無効であるため、NFSサーバからボリュームをマウントできないためです。

status.conditionsのイベントを追跡することは、一般的にユーザがkubelet(またはあなたの場合は演算子)とアンダーラインリソースとのやりとりを制御できないため、このシナリオではあまり役に立ちません。一般に、status.conditionsは、オブジェクトがこの状態にある理由ではなく、オブジェクトのステータスのみを通知します。

これは選択を行う方法の私の理解です。私は周りに規則があるかどうかわかりません。

関連する問題