ApiServerSource リファレンス¶
このトピックでは、ApiServerSource オブジェクトの設定可能なフィールドに関するリファレンス情報を提供します。
ApiServerSource¶
ApiServerSource 定義は、以下のフィールドをサポートしています。
フィールド | 説明 | 必須またはオプション |
---|---|---|
apiVersion |
API バージョンを指定します。例: sources.knative.dev/v1 。 |
必須 |
kind |
このリソースオブジェクトを ApiServerSource オブジェクトとして識別します。 | 必須 |
metadata |
ApiServerSource オブジェクトを一意に識別するメタデータを指定します。例: name 。 |
必須 |
spec |
この ApiServerSource オブジェクトの設定情報を指定します。 | 必須 |
spec.resources |
ソースが追跡し、Kubernetes ApiServer から関連するライフサイクルイベントを送信できるようにするリソース。フィルター処理に役立つオプションのラベルセレクターが含まれます。 | 必須 |
spec.mode |
EventMode は、イベントの形式を制御します。監視対象のリソースの dataref イベントタイプを送信するには、Reference に設定します。イベントペイロードにはリソースへの参照のみが含まれます。ペイロードに完全なリソースライフサイクルイベントを含めるには、Resource に設定します。デフォルトは Reference です。 |
オプション |
spec.owner |
ResourceOwner は、特定のリソースタイプによって所有されているリソースのみを追跡するための追加のフィルターです。ResourceOwner が Resources[n] と一致する場合、Resources[n] は ResourceOwner フィルターを通過できます。 | オプション |
spec.serviceAccountName |
このソースを実行するために使用する ServiceAccount の名前。設定されていない場合、デフォルトは default です。 |
オプション |
spec.sink |
シンクとして使用する URI に解決されるオブジェクトへの参照。 | 必須 |
spec.ceOverrides |
シンクに送信されるイベントの出力形式と変更を制御するためのオーバーライドを定義します。 | オプション |
spec.namespaceSelector |
複数の名前空間を追跡するためのラベルセレクターを指定します。指定しない場合、ApiServerSource の名前空間が追跡されます。 | オプション |
Resources パラメーター¶
resources
パラメーターは、ソースが追跡し、Kubernetes ApiServer から関連するライフサイクルイベントを送信できるようにするリソースを指定します。このパラメーターには、フィルター処理に役立つオプションのラベルセレクターが含まれます。
resources
定義は、以下のフィールドをサポートします。
フィールド | 説明 | 必須またはオプション |
---|---|---|
apiVersion |
監視対象リソースの API バージョン。 | 必須 |
kind |
監視対象リソースの種類。 | 必須 |
selector |
LabelSelector は、このソースを、ラベルセレクターを通過するオブジェクトにフィルター処理します。 | オプション |
selector.matchExpressions |
ラベルセレクターの要件のリスト。要件は AND で結合されます。 | matchExpressions または matchLabels のいずれかを使用します。 |
selector.matchExpressions.key |
セレクターが適用されるラベルキー。 | matchExpressions を使用する場合は必須 |
selector.matchExpressions.operator |
キーと値のセットとの関係を表します。有効な演算子は、In 、NotIn 、Exists 、および DoesNotExist です。 |
matchExpressions を使用する場合は必須 |
selector.matchExpressions.values |
文字列値の配列。operator が In または NotIn の場合、values 配列は空でない必要があります。operator が Exists または DoesNotExist の場合、values 配列は空である必要があります。この配列は、戦略的マージパッチ中に置き換えられます。 |
matchExpressions を使用する場合は必須 |
selector.matchLabels |
キーと値のペアのマップ。matchLabels マップの各キーと値のペアは、matchExpressions の要素と同等であり、key フィールドは matchLabels.<key> であり、operator は In であり、values 配列には "matchLabels のみ" が含まれます。 |
matchExpressions または matchLabels のいずれかを使用します。 |
例: Resources パラメーター¶
次の YAML が指定されている場合、ApiServerSource オブジェクトは名前空間内のすべての Pod および Deployment のイベントを受信します。
apiVersion: sources.knative.dev/v1
kind: ApiServerSource
metadata:
name: <apiserversource>
namespace: <namespace>
spec:
# ...
resources:
- apiVersion: v1
kind: Pod
- apiVersion: apps/v1
kind: Deployment
例: matchExpressions を使用した Resources パラメーター¶
次の YAML が指定されている場合、ApiServerSource オブジェクトは、ラベル app=myapp
または app=yourapp
を持つ名前空間内のすべての Pod のイベントを受信します。
apiVersion: sources.knative.dev/v1
kind: ApiServerSource
metadata:
name: <apiserversource>
namespace: <namespace>
spec:
# ...
resources:
- apiVersion: v1
kind: Pod
selector:
matchExpressions:
- key: app
operator: In
values:
- myapp
- yourapp
例: matchLabels を使用した Resources パラメーター¶
次の YAML が指定されている場合、ApiServerSource オブジェクトは、ラベル app=myapp
を持つ名前空間内のすべての Pod のイベントを受信します。
apiVersion: sources.knative.dev/v1
kind: ApiServerSource
metadata:
name: <apiserversource>
namespace: <namespace>
spec:
# ...
resources:
- apiVersion: v1
kind: Pod
selector:
matchLabels:
app: myapp
ServiceAccountName パラメーター¶
ServiceAccountName は、Kubernetes サービスアカウントへの参照です。
指定されたresources
のライフサイクルイベントを追跡するには、ApiServerSource オブジェクトに適切な権限を割り当てる必要があります。
例: Pod の追跡¶
次の YAML ファイルは、ServiceAccount、Role、および RoleBinding を作成し、ApiServerSource の名前空間 apiserversource-example
の Pod リソースを取得、リスト、および監視する権限を付与します。
ServiceAccount の例
apiVersion: v1
kind: ServiceAccount
metadata:
name: test-service-account
namespace: apiserversource-example
Pod リソースを取得、リスト、および監視する権限を持つ Role の例
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: test-role
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
RoleBinding の例
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: test-role-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: test-role
subjects:
- kind: ServiceAccount
name: test-service-account
namespace: apiserversource-example
test-service-account
を使用した ApiServerSource の例
apiVersion: sources.knative.dev/v1
kind: ApiServerSource
metadata:
name: test-apiserversource
namespace: apiserversource-example
spec:
# ...
serviceAccountName: test-service-account
...
Owner パラメーター¶
ResourceOwner は、特定のリソースタイプによって所有されているリソースのみを追跡するための追加のフィルターです。ResourceOwner が Resources[n] と一致する場合、Resources[n] は ResourceOwner フィルターを通過できます。
owner
定義は、以下のフィールドをサポートします。
フィールド | 説明 | 必須またはオプション |
---|---|---|
apiVersion |
監視対象リソースの API バージョン。 | 必須 |
kind |
監視対象リソースの種類。 | 必須 |
例: Owner パラメーター¶
apiVersion: sources.knative.dev/v1
kind: ApiServerSource
metadata:
name: <apiserversource>
namespace: <namespace>
spec:
...
owner:
apiVersion: apps/v1
kind: Deployment
...
NamespaceSelector パラメーター¶
NamespaceSelector はオプションのラベルセレクターで、複数の名前空間をターゲットにするために利用できます。セレクターが設定されていない場合、ApiServerSource の名前空間が追跡されます。
namespaceSelector
は以下のフィールドをサポートします。
フィールド | 説明 | 必須またはオプション |
---|---|---|
matchExpressions |
ラベルセレクターの要件のリスト。要件は AND で結合されます。 | matchExpressions または matchLabels のいずれかを使用します。 |
matchExpressions.key |
セレクターが適用されるラベルキー。 | matchExpressions を使用する場合は必須 |
matchExpressions.operator |
キーと値のセットとの関係を表します。有効な演算子は、In 、NotIn 、Exists 、および DoesNotExist です。 |
matchExpressions を使用する場合は必須 |
matchExpressions.values |
文字列値の配列。operator が In または NotIn の場合、values 配列は空でない必要があります。operator が Exists または DoesNotExist の場合、values 配列は空である必要があります。この配列は、戦略的マージパッチ中に置き換えられます。 |
matchExpressions を使用する場合は必須 |
matchLabels |
キーと値のペアのマップ。matchLabels マップの各キーと値のペアは、matchExpressions の要素と同等であり、key フィールドは matchLabels.<key> であり、operator は In であり、values 配列には "matchLabels のみ" が含まれます。 |
matchExpressions または matchLabels のいずれかを使用します。 |
例: matchExpressions を使用して複数の名前空間をターゲットにする¶
apiVersion: sources.knative.dev/v1
kind: ApiServerSource
metadata:
name: <apiserversource>
namespace: <namespace>
spec:
...
namespaceSelector:
matchExpressions:
- key: environment
operator: In
values:
- production
- development
...
例: matchLabels を使用して複数の名前空間をターゲットにする¶
apiVersion: sources.knative.dev/v1
kind: ApiServerSource
metadata:
name: <apiserversource>
namespace: <namespace>
spec:
...
namespaceSelector:
matchLabels:
environment: production
...
例: 空のセレクターを使用してすべての名前空間をターゲットにする¶
apiVersion: sources.knative.dev/v1
kind: ApiServerSource
metadata:
name: <apiserversource>
namespace: <namespace>
spec:
...
namespaceSelector: {}
...
CloudEvent のオーバーライド¶
CloudEvent のオーバーライドは、シンクに送信されるイベントの出力形式と変更を制御するためのオーバーライドを定義します。
ceOverrides
定義は、以下のフィールドをサポートします。
フィールド | 説明 | 必須またはオプション |
---|---|---|
extensions |
アウトバウンドイベントに追加またはオーバーライドされる属性を指定します。各 extensions キーと値のペアは、属性拡張としてイベントに個別に設定されます。 |
オプション |
注意
CloudEvent 属性名として有効なもののみが、拡張機能として許可されます。extensions オーバーライド構成から、仕様で定義された属性を設定することはできません。たとえば、type
属性を変更することはできません。
例: CloudEvent のオーバーライド¶
apiVersion: sources.knative.dev/v1
kind: ApiServerSource
metadata:
name: <apiserversource>
namespace: <namespace>
spec:
...
ceOverrides:
extensions:
extra: this is an extra attribute
additional: 42
コントラクト
これにより、シンクコンテナに K_CE_OVERRIDES
環境変数が次のように設定されます。
{ "extensions": { "extra": "this is an extra attribute", "additional": "42" } }