diff --git a/examples/cdf/application.yml b/examples/cdf/application.yml index cc80908..0d2a342 100644 --- a/examples/cdf/application.yml +++ b/examples/cdf/application.yml @@ -14,12 +14,78 @@ # See the License for the specific language governing permissions and # limitations under the License. -- name: Coda +- name: Deploy example DFX Flow hosts: localhost connection: local gather_facts: no become: no + tags: always tasks: - - name: Deployment results - debug: - msg: Success! \ No newline at end of file + - name: Construct the deployment details + when: + - deployment is undefined + - "'run' in ansible_run_tags" + - "'teardown' not in ansible_run_tags" + ansible.builtin.include_role: + name: cloudera.exe.info + + - name: Get CDP workload username for current user + when: + - "'teardown' not in ansible_run_tags" + - "'run' in ansible_run_tags" + cloudera.cloud.iam_user_info: + current_user: yes + register: __iam + + - name: Extract Kafka Brokers from Info + when: + - "'teardown' not in ansible_run_tags" + - "'run' in ansible_run_tags" + - "{{ deployment.datahubs | selectattr('workloadType', 'search', 'Streams Messaging') | length > 0 }}" + ansible.builtin.set_fact: + kafka_brokers_fqdns: "{{ deployment.datahubs | selectattr('workloadType', 'search', 'Streams Messaging') | first | json_query(_jq) | first }}" + vars: + _jq: "instanceGroups[?name=='core_broker'].instances[*].fqdn" + + - name: Deploy example DFX Flow - Kafka to Kafka + when: + - "'teardown' not in ansible_run_tags" + - "'run' in ansible_run_tags" + - kafka_brokers_fqdns is defined + - kafka_brokers_fqdns | length > 0 + cloudera.cloud.df_deployment: + name: "{{ globals.name_prefix }}_ex_kafkatokafka" + df_name: "{{ deployment.environment.environmentName }}" + flow_name: "Kafka to Kafka" + autoscale: yes + autostart_flow: yes + parameter_groups: "{{ parameter_groups }}" + kpis: "{{ kpis }}" + vars: + parameter_groups: + - name: "kafka-to-kafka" + parameters: + - name: "CDP Workload User" + value: "{{ __iam.users[0].workloadUsername }}" + - name: "CDP Workload User Password" + value: "{{ globals.admin_password }}" + - name: "Kafka Broker Endpoint" + value: "{{ kafka_brokers_fqdns | product([':9093']) | map('join') | list | join(',') }}" + - name: "Kafka Consumer Group ID" + value: "ex_cdf_consg0" + - name: "Kafka Destination Topic" + value: "ex_cdf_dest" + - name: "Kafka Producer ID" + value: "_ex_cdf_prodc0" + - name: "Kafka Source Topic" + value: "ex_cdf_source" + kpis: + - metricId: cpuUtilization + alert: + thresholdMoreThan: + unitId: percentage + value: 25 + frequencyTolerance: + unit: + id: MINUTES + value: 5 \ No newline at end of file diff --git a/examples/cdf/definition.yml b/examples/cdf/definition.yml index 77ed966..6979cb0 100644 --- a/examples/cdf/definition.yml +++ b/examples/cdf/definition.yml @@ -17,6 +17,8 @@ # Commented values are shown with the defaults, uncomment and change to override df: + readyflows: + - flow_name: "Kafka to Kafka" # min_k8s_nodes: 3 # max_k8s_nodes: 5 # public_loadbalancer: True @@ -32,11 +34,11 @@ env: public_endpoint_access: yes tunnel: yes -#datahub: -# definitions: -# - definition: "Flow Management Light Duty" -# suffix: nifi-dhub -# - definition: "Streams Messaging Light Duty" -# suffix: kafka-dhub -# - definition: "Streaming Analytics Light Duty" -# suffix: flink-dhub \ No newline at end of file +datahub: + definitions: + - definition: "Flow Management Light Duty" + suffix: nifi-dhub + - definition: "Streams Messaging Light Duty" + suffix: kafka-dhub + - definition: "Streaming Analytics Light Duty" + suffix: flink-dhub \ No newline at end of file