from("direct:list").
to("kubernetes-events:///?kubernetesClient=#kubernetesClient&operation=listEvents").
to("mock:result");
from("direct:list").
to("kubernetes-events:///?kubernetesClient=#kubernetesClient&operation=listEvents").
to("mock:result");
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
この操作により、クラスターからイベントリストが返されます。イベント型は io.fabric8.kubernetes.api.model.events.v1.Event
です。
どの名前空間からのイベントが予期されるかを示すために、メッセージヘッダー CamelKubernetesNamespaceName
を設定できます。デフォルトでは、すべての名前空間のイベントが返されます。
-
listEventsByLabels: 選択されたイベントをラベル別にリストします。
from("direct:listByLabels").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
Map<String, String> labels = new HashMap<>();
labels.put("key1", "value1");
labels.put("key2", "value2");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENTS_LABELS, labels);
}
});
to("kubernetes-events:///?kubernetesClient=#kubernetesClient&operation=listEventsByLabels").
to("mock:result");
from("direct:listByLabels").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
Map<String, String> labels = new HashMap<>();
labels.put("key1", "value1");
labels.put("key2", "value2");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENTS_LABELS, labels);
}
});
to("kubernetes-events:///?kubernetesClient=#kubernetesClient&operation=listEventsByLabels").
to("mock:result");
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
この操作により、ラベルセレクターを使用して、任意の名前空間で発生したクラスターからのイベントのリストが返されます (上記の例では、ラベル "key1" が "value1" に設定され、ラベル "key2" が "value2" に設定されているイベントのみが想定されます)。イベント型は io.fabric8.kubernetes.api.model.events.v1.Event
です。
この操作により、メッセージヘッダー CamelKubernetesEventsLabels
が Map<String, String>
に設定されることが想定されます。その場合のキーと値のペアは、想定されるラベル名と値を表します。
from("direct:get").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_NAME, "event1");
}
});
to("kubernetes-events:///?kubernetesClient=#kubernetesClient&operation=getEvent").
to("mock:result");
from("direct:get").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_NAME, "event1");
}
});
to("kubernetes-events:///?kubernetesClient=#kubernetesClient&operation=getEvent").
to("mock:result");
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
この操作により、条件に一致するイベントがクラスターから返されます。イベント型は io.fabric8.kubernetes.api.model.events.v1.Event
です。
この操作には、ターゲット名前空間の名前に設定する必要がある CamelKubernetesNamespaceName
と、イベントのターゲット名に設定する必要がある CamelKubernetesEventName
という 2 つのメッセージヘッダーが必要です。
一致するイベントが見つからなかった場合は、null
が返されます。
-
createEvent: 新しいイベントを作成します。
from("direct:get").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "default");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_NAME, "test1");
Map<String, String> labels = new HashMap<>();
labels.put("this", "rocks");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENTS_LABELS, labels);
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_ACTION_PRODUCER, "Some Action");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_TYPE, "Normal");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_REASON, "Some Reason");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_REPORTING_CONTROLLER, "Some-Reporting-Controller");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_REPORTING_INSTANCE, "Some-Reporting-Instance");
}
});
to("kubernetes-events:///?kubernetesClient=#kubernetesClient&operation=createEvent").
to("mock:result");
from("direct:get").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "default");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_NAME, "test1");
Map<String, String> labels = new HashMap<>();
labels.put("this", "rocks");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENTS_LABELS, labels);
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_ACTION_PRODUCER, "Some Action");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_TYPE, "Normal");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_REASON, "Some Reason");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_REPORTING_CONTROLLER, "Some-Reporting-Controller");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_REPORTING_INSTANCE, "Some-Reporting-Instance");
}
});
to("kubernetes-events:///?kubernetesClient=#kubernetesClient&operation=createEvent").
to("mock:result");
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
この操作により、クラスター内に新しいイベントが発行されます。イベントの作成方法は 2 つあり、メッセージヘッダーから作成するか、io.fabric8.kubernetes.api.model.events.v1.EventBuilder
から直接作成できます。
イベントの作成方法にかかわらず、以下が適用されます。
-
この操作には、名前空間の名前と生成されるイベントの名前をそれぞれ設定するために、
CamelKubernetesNamespaceName
と CamelKubernetesEventName
という 2 つのメッセージヘッダーが必要です。
-
この操作では、生成されたイベントにラベルを設定するためのメッセージヘッダー
CamelKubernetesEventsLabels
がサポートされています。
イベントの作成に使用できるメッセージヘッダーは、CamelKubernetesEventTime
、CamelKubernetesEventAction
、CamelKubernetesEventType
、CamelKubernetesEventReason
、CamelKubernetesEventNote
、CamelKubernetesEventRegarding
、CamelKubernetesEventRelated
、CamelKubernetesEventReportingController
、および CamelKubernetesEventReportingInstance
です。
サポートされているメッセージヘッダが特定のユースケースに十分でない場合、イベントの作成時に使用する事前入力ビルダー表す io.fabric8.kubernetes.api.model.events.v1.EventBuilder
型のオブジェクトでメッセージボディを設定することも可能です。ビルダーが提供されている場合でも、ラベル、イベント名、名前空間名は必ずメッセージヘッダーから設定されることに注意してください。
-
updateEvent: 既存のイベントを更新します。
動作は createEvent
とまったく同じですが、操作の名前のみ異なります。
-
deleteEvent: 既存のイベントを削除します。
from("direct:get").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "default");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_NAME, "test1");
}
});
to("kubernetes-events:///?kubernetesClient=#kubernetesClient&operation=deleteEvent").
to("mock:result");
from("direct:get").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "default");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_NAME, "test1");
}
});
to("kubernetes-events:///?kubernetesClient=#kubernetesClient&operation=deleteEvent").
to("mock:result");
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
この操作により、クラスターから既存のイベントが削除されます。操作の成功または失敗を示す boolean
が返されます。
この操作には、ターゲット名前空間の名前に設定する必要がある CamelKubernetesNamespaceName
と、イベントのターゲット名に設定する必要がある CamelKubernetesEventName
という 2 つのメッセージヘッダーが必要です。