Gareth Healy
2020-03-10 e51fcf10eb547bcf56d6ff761d3798ea238e9e2c
Added kafka workload (#1272)

2 files added
4 files modified
164 ■■■■■ changed files
ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_per_project_amqstreamsworkload.yml 28 ●●●●● patch | view | raw | blame | history
ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_project.yml 4 ●●●● patch | view | raw | blame | history
ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_per_project_amqstreamsworkload.yml 52 ●●●●● patch | view | raw | blame | history
ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_project.yml 4 ●●●● patch | view | raw | blame | history
ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/templates/amq-streams/topic.j2 71 ●●●● patch | view | raw | blame | history
ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/templates/bucketrepo/deployment.j2 5 ●●●●● patch | view | raw | blame | history
ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_per_project_amqstreamsworkload.yml
New file
@@ -0,0 +1,28 @@
---
- name: Check Kafka producer is running
  command: >
    oc rollout status DeploymentConfig/fraud-detection-pam-kafka-producer --watch=true -n "{{ _namespace }}"
- name: Check Kafka aggregator is running
  command: >
    oc rollout status DeploymentConfig/fraud-detection-pam-kafka-aggregator --watch=true -n "{{ _namespace }}"
- name: Get Kafka aggregator route host
  command: >
    oc get route/fraud-detection-pam-kafka-aggregator -o jsonpath='{.spec.host}' -n "{{ _namespace }}"
  register: aggregator_host
  retries: "{{ _retry }}"
  delay: "{{ _delay }}"
  until: aggregator_host.stdout != ""
- name: Check Kafka aggregator responds with 200
  uri:
    url: "http://{{ aggregator_host.stdout }}/transactions/data/0000-0000-0000-0001"
    method: GET
    validate_certs: false
    follow_redirects: yes
    status_code: 200
  register: aggregatorresult
  retries: "{{ _retry }}"
  delay: "{{ _delay }}"
  until: aggregatorresult.status == 200
ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_project.yml
@@ -22,6 +22,10 @@
  include_tasks: workload_per_project_businessautomationworkload.yml
  when: _deploy_workload == true
- name: AMQ Streams workload for {{ _namespace }}
  include_tasks: workload_per_project_amqstreamsworkload.yml
  when: _deploy_workload == true
- name: Fuse workdload for {{ _namespace }}
  include_tasks: workload_per_project_fuseworkload.yml
  when: _deploy_workload == true
ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_per_project_amqstreamsworkload.yml
New file
@@ -0,0 +1,52 @@
---
- name: Check Kafka Producer workload is running (note; error can be ignored)
  command: >
    oc rollout status DeploymentConfig/fraud-detection-pam-kafka-producer --watch=true -n {{ _namespace }}
  register: producerrollout
  ignore_errors: true
- name: Check Kafka Aggregator workload is running (note; error can be ignored)
  command: >
    oc rollout status DeploymentConfig/fraud-detection-pam-kafka-aggregator --watch=true -n {{ _namespace }}
  register: aggregatorrollout
  ignore_errors: true
- name: Get Kafka template
  uri:
    url: "https://{{ gitea_route.stdout }}/{{ _namespace }}/proactive-fraud-detection-kafka/raw/branch/master/.openshiftio/application.yaml"
    method: GET
    body_format: json
    validate_certs: false
    return_content: true
  register: kafkatemplate
  when: '"successfully rolled out" not in producerrollout.stdout or "successfully rolled out" not in aggregatorrollout.stdout'
- name: Process Kafka Producer workload template
  command: >
    oc process -p APP_NAME=fraud-detection-pam-kafka-producer -p SOURCE_REPOSITORY_DIR=fraud-detection-pam-kafka-producer -p SOURCE_REPOSITORY_URL=http://mygitea.gitea.svc.cluster.local:3000/{{ _namespace }}/proactive-fraud-detection-kafka.git -p KAFKA_BROKERS={{ _namespace }}-cluster-kafka-bootstrap:9092 -n {{ _namespace }} -f -
  args:
    stdin: "{{ kafkatemplate.content | string }}"
  register: producerwork
  when: '"successfully rolled out" not in producerrollout.stdout'
- name: Process Kafka Aggregator workload template
  command: >
    oc process -p APP_NAME=fraud-detection-pam-kafka-aggregator -p SOURCE_REPOSITORY_DIR=fraud-detection-pam-kafka-aggregator -p SOURCE_REPOSITORY_URL=http://mygitea.gitea.svc.cluster.local:3000/{{ _namespace }}/proactive-fraud-detection-kafka.git -p KAFKA_BROKERS={{ _namespace }}-cluster-kafka-bootstrap:9092 -n {{ _namespace }} -f -
  args:
    stdin: "{{ kafkatemplate.content | string }}"
  register: aggregatorwork
  when: '"successfully rolled out" not in aggregatorrollout.stdout'
- name: Create Kafka Producer workload
  k8s:
    state: present
    namespace: "{{ _namespace }}"
    definition: "{{ producerwork.stdout | from_json }}"
  when: '"successfully rolled out" not in producerrollout.stdout'
- name: Create Kafka Aggregator workload
  k8s:
    state: present
    namespace: "{{ _namespace }}"
    definition: "{{ aggregatorwork.stdout | from_json }}"
  when: '"successfully rolled out" not in aggregatorrollout.stdout'
ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_project.yml
@@ -56,6 +56,10 @@
  include_tasks: workload_per_project_businessautomationworkload.yml
  when: _deploy_workload == true
- name: AMQ Streams workload for {{ _namespace }}
  include_tasks: workload_per_project_amqstreamsworkload.yml
  when: _deploy_workload == true
- name: Fuse workload for {{ _namespace }}
  include_tasks: workload_per_project_fuseworkload.yml
  when: _deploy_workload == true
ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/templates/amq-streams/topic.j2
@@ -1,14 +1,59 @@
apiVersion: kafka.strimzi.io/v1beta1
kind: KafkaTopic
---
kind: List
apiVersion: v1
metadata:
  labels:
    strimzi.io/cluster: {{ _namespace }}-cluster
  name: block-account
spec:
  config:
    message.format.version: 2.3-IV1
    retention.ms: '604800000'
    segment.bytes: '1073741824'
  partitions: 10
  replicas: 1
  topicName: block_account
  name: amqstreams-topics
items:
- apiVersion: kafka.strimzi.io/v1beta1
  kind: KafkaTopic
  metadata:
    labels:
      strimzi.io/cluster: {{ _namespace }}-cluster
    name: block-account
  spec:
    config:
      message.format.version: 2.3-IV1
      retention.ms: '604800000'
      segment.bytes: '1073741824'
    partitions: 3
    replicas: 1
    topicName: block_account
- apiVersion: kafka.strimzi.io/v1beta1
  kind: KafkaTopic
  metadata:
    labels:
      strimzi.io/cluster: {{ _namespace }}-cluster
    name: transactions-store
  spec:
    config:
      message.format.version: 2.3-IV1
      retention.ms: '604800000'
      segment.bytes: '1073741824'
    partitions: 3
    replicas: 1
- apiVersion: kafka.strimzi.io/v1beta1
  kind: KafkaTopic
  metadata:
    labels:
      strimzi.io/cluster: {{ _namespace }}-cluster
    name: transactions-topic
  spec:
    config:
      message.format.version: 2.3-IV1
      retention.ms: '604800000'
      segment.bytes: '1073741824'
    partitions: 3
    replicas: 1
- apiVersion: kafka.strimzi.io/v1beta1
  kind: KafkaTopic
  metadata:
    labels:
      strimzi.io/cluster: {{ _namespace }}-cluster
    name: transactions-aggregated
  spec:
    config:
      message.format.version: 2.3-IV1
      retention.ms: '604800000'
      segment.bytes: '1073741824'
    partitions: 3
    replicas: 1
ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/templates/bucketrepo/deployment.j2
@@ -36,6 +36,11 @@
      cache:
        base_dir: "/tmp/bucketrepo"
      #repositories:
      #- url: "https://repo1.maven.org/maven2"
      #- url: "https://maven.repository.redhat.com/ga"
      #- url: "https://maven.repository.redhat.com/earlyaccess/all"
- apiVersion: v1
  kind: Service
  metadata: