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手順
サービスを公開するためのルートを (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ルートを作成したら、ルート URL へのポスト を使用してテストします。
curl -H "Content-Type: application/json" -X POST test-sync-bug-dynatrace.apps.aap-dt.ocp4.testing.ansible.com -d '{}'注記ポートはルート (targetPort) で指定されているため、必要ありません。