kube_prometheus_stack_enabled: false
 kube_prometheus_stack_version: 32.2.1
 cert_manager_version: 1.5.4
+strimzi_kafka_version: 0.28.0
 
--- /dev/null
+---
+strimzi_kafka:
+  k8s_namespace: strimzi-system
+  helm_release_name: strimzi-kafka-operator
+  helm_timeout: "240s"
+  helm_values_file: "{{ app_data_path }}/strimzi_kafka.yaml"
+  helm_values:
+    watchAnyNamespace: true
 
--- /dev/null
+---
+- name: Check {{ strimzi_kafka.helm_release_name }} helm package exists
+  stat:
+    path: "{{ app_data_path }}/downloads/strimzi-kafka-operator-helm-3-chart-{{ strimzi_kafka_version }}.tgz"
+  register: strimzi_kafka_package_stat
+  failed_when: not strimzi_kafka_package_stat.stat.exists
+
+- name: Generate helm values file
+  copy:
+    dest: "{{ strimzi_kafka.helm_values_file }}"
+    content: "{{ strimzi_kafka.helm_values | to_nice_yaml }}"
+
+- name: "Install Helm release {{ strimzi_kafka.helm_release_name }}"
+  community.kubernetes.helm:
+    release_name: "{{ strimzi_kafka.helm_release_name }}"
+    release_namespace: "{{ strimzi_kafka.k8s_namespace }}"
+    create_namespace: True
+    chart_ref: "{{ app_data_path }}/downloads/strimzi-kafka-operator-helm-3-chart-{{ strimzi_kafka_version }}.tgz"
+    values_files: "{{ strimzi_kafka.helm_values_file }}"
+    wait: True
+    wait_timeout: "{{ strimzi_kafka.helm_timeout }}"
+  tags: molecule-notest
 
 - import_playbook: kube_prometheus.yml
   when: kube_prometheus_stack_enabled
 - import_playbook: cert_manager.yml
+- import_playbook: strimzi_kafka.yml
 - import_playbook: application.yml
 
--- /dev/null
+---
+- name: Provision strimzi-kafka-operator into Kubernetes cluster
+  hosts: infrastructure
+  roles:
+    - strimzi-kafka-operator
 
--- /dev/null
+quay.io/strimzi/operator:0.28.0
 
--- /dev/null
+https://github.com/strimzi/strimzi-kafka-operator/releases/download/0.28.0/strimzi-kafka-operator-helm-3-chart-0.28.0.tgz
 
                             '**/helm-push_*_linux_amd64.tar.gz',
                             '**/kube-prometheus-stack-*.tgz',
                             '**/cert-manager-*.tgz',
-                            '**/cmctl-linux-amd64.tar.gz']
+                            '**/cmctl-linux-amd64.tar.gz',
+                            '**/strimzi-kafka-operator-helm-3-chart-*.tgz']
 
         for pattern in bin_pattern_list:
             for bin_file in glob.glob(os.path.join('.', pattern), recursive=True):