5.6. Webhook ルールブックのアクティブ化

Openshift 環境では、ルールブックアクティベーションの Kubernetes サービスを公開するルートを作成することで、Webhook が特定のポートを介して activation-job-pod に到達できるようにすることが可能です。

前提条件

  • Event-Driven Ansible Controller ダッシュボードでルールブックアクティベーションを作成している。
注記

特定の Webhook を含むルールブックの例を以下に示します。

- name: Listen for storage-monitor events
  hosts: all
  sources:
    - ansible.eda.webhook:
        host: 0.0.0.0
        port: 5000
  rules:
    - name: Rule - Print event information
    condition: event.meta.headers is defined
    action:
      run_job_template:
        name: StorageRemediation
        organization: Default
        job_args:
          extra_vars:
             message: from eda
             sleep: 1

手順

  1. サービスを公開するためのルートを (OpenShift Container Platform 上に) 作成します。以下は、意思決定環境 Pod のポート 5000 で POST を要求する ansible-rulebook ソースのルートの例です。

    kind: Route
    apiVersion: route.openshift.io/v1
    metadata:
      name: test-sync-bug
      namespace: dynatrace
      labels:
        app: eda
        job-name: activation-job-1
    spec:
      host: test-sync-bug-dynatrace.apps.aap-dt.ocp4.testing.ansible.com
      to:
        kind: Service
        name: activation-job-1
        weight: 100
      port:
        targetPort: 5000
      wildcardPolicy: None
  2. ルートを作成したら、ルート URL へのポスト を使用してテストします。

    curl -H "Content-Type: application/json" -X POST
    test-sync-bug-dynatrace.apps.aap-dt.ocp4.testing.ansible.com -d
    '{}'
    注記

    ポートはルート (targetPort) で指定されているため、必要ありません。