コンテンツへスキップ

ApiServerSource リファレンス

version

このトピックでは、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 キーと値のセットとの関係を表します。有効な演算子は、InNotInExists、および DoesNotExist です。 matchExpressions を使用する場合は必須
selector.matchExpressions.values 文字列値の配列。operatorIn または NotIn の場合、values 配列は空でない必要があります。operatorExists または DoesNotExist の場合、values 配列は空である必要があります。この配列は、戦略的マージパッチ中に置き換えられます。 matchExpressions を使用する場合は必須
selector.matchLabels キーと値のペアのマップ。matchLabels マップの各キーと値のペアは、matchExpressions の要素と同等であり、key フィールドは matchLabels.<key> であり、operatorIn であり、values 配列には "matchLabels のみ" が含まれます。。要件は AND で結合されます。 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 キーと値のセットとの関係を表します。有効な演算子は、InNotInExists、および DoesNotExist です。 matchExpressions を使用する場合は必須
matchExpressions.values 文字列値の配列。operatorIn または NotIn の場合、values 配列は空でない必要があります。operatorExists または DoesNotExist の場合、values 配列は空である必要があります。この配列は、戦略的マージパッチ中に置き換えられます。 matchExpressions を使用する場合は必須
matchLabels キーと値のペアのマップ。matchLabels マップの各キーと値のペアは、matchExpressions の要素と同等であり、key フィールドは matchLabels.<key> であり、operatorIn であり、values 配列には "matchLabels のみ" が含まれます。。要件は AND で結合されます。 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" } }

当サイトでは、サイトトラフィックを把握するためにアナリティクスと Cookie を使用しています。お客様のサイト利用に関する情報は、その目的のために Google と共有されます。詳細はこちら。