Knative Eventing Sugar Controller¶
Knative Eventing Sugar Controllerは、設定されたラベルに反応して、クラスタまたは名前空間内のイベントリソースを生成または制御します。これにより、クラスタオペレーターと開発者は、より少ないリソースの作成に集中でき、基盤となるイベントインフラストラクチャはオンデマンドで作成され、不要になった場合はクリーンアップされます。
インストール¶
Sugar Controllerはデフォルトで無効になっており、config-sugar
ConfigMapを設定することで有効にできます。簡単な例については以下を参照し、より詳細についてはSugarコントローラーの設定を参照してください。
ブローカーの自動作成¶
ブローカーを作成する1つの方法は、デフォルト設定を使用してリソースを手動でクラスタに適用することです。
-
次のYAMLをファイルにコピーします。
apiVersion: eventing.knative.dev/v1 kind: Broker metadata: name: default namespace: default
-
次のコマンドを実行してYAMLファイルを適用します。
ここで、kubectl apply -f <filename>.yaml
<filename>
は前の手順で作成したファイル名です。
名前空間の作成時やトリガーの作成時など、ブローカーの自動作成が望ましい場合があります。Sugarコントローラーはこれらのユースケースを可能にします。次のsugar-config
ConfigMapのサンプル設定では、選択された名前空間とすべてのトリガーに対してSugar Controllerを有効にします。
apiVersion: v1
kind: ConfigMap
metadata:
name: config-sugar
namespace: knative-eventing
labels:
eventing.knative.dev/release: devel
data:
# Specify a label selector to selectively apply sugaring to certain namespaces
namespace-selector: |
matchExpressions:
- key: "my.custom.injection.key"
operator: "In"
values: ["enabled"]
# Use an empty object to enable for all triggers
trigger-selector: |
{}
- ラベル
my.custom.injection.key: enabled
を持つ名前空間が作成されると、Sugarコントローラーはその名前空間に「default」という名前のブローカーを作成します。 - トリガーが作成されると、Sugarコントローラーはトリガーの名前空間に「default」という名前のブローカーを作成します。
ブローカーが削除されても参照されているラベルセレクターが使用されている場合、Sugarコントローラーは自動的にデフォルトのブローカーを再作成します。
名前空間の例¶
名前空間の作成時に「default」ブローカーを作成する
-
次のYAMLをファイルにコピーします。
apiVersion: v1 kind: Namespace metadata: name: example labels: my.custom.injection.key: enabled
-
次のコマンドを実行してYAMLファイルを適用します。
ここで、kubectl apply -f <filename>.yaml
<filename>
は前の手順で作成したファイル名です。
名前空間が存在した後にブローカーを自動的に作成するには、名前空間にラベルを付けます。
kubectl label namespace default my.custom.injection.key=enabled
名前空間に「default」という名前のブローカーが既に存在する場合は、Sugarコントローラーは何もしません。
トリガーの例¶
トリガーの作成時にトリガーの名前空間に「default」ブローカーを作成する
kubectl apply -f - << EOF
apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
name: hello-sugar
namespace: hello
spec:
broker: default
subscriber:
ref:
apiVersion: v1
kind: Service
name: event-display
EOF
これにより、「hello」名前空間に「default」というブローカーが作成され、「event-display」サービスへのイベント送信が試みられます。
名前空間に「default」という名前のブローカーが既に存在する場合は、Sugarコントローラーは何もしません。トリガーは既存のブローカーを所有しません。