Merge "[DMAAP-STRIMZI] Move strimzi kafka bridge"
diff --git a/kubernetes/README.md b/kubernetes/README.md
index 9d8d4cc..696ede7 100644
--- a/kubernetes/README.md
+++ b/kubernetes/README.md
@@ -1,5 +1,8 @@
 ## **Quick Start Guide**
 
+> **WARNING**: This README is no longer maintained and will be deprecated.
+> Please refer to the official OOM guide here - [OOM Guide](https://docs.onap.org/projects/onap-oom/en/latest/sections/oom_project_description.html)
+
 
 This is a quick start guide describing how to deploy ONAP on Kubernetes using Helm.
 
diff --git a/kubernetes/dmaap/Chart.yaml b/kubernetes/dmaap/Chart.yaml
index 25fa15a..8d84a97 100644
--- a/kubernetes/dmaap/Chart.yaml
+++ b/kubernetes/dmaap/Chart.yaml
@@ -24,10 +24,6 @@
   - name: common
     version: ~12.x-0
     repository: '@local'
-  - name: dmaap-strimzi
-    version: ~12.x-0
-    repository: 'file://components/dmaap-strimzi'
-    condition: dmaap-strimzi.enabled
   - name: message-router
     version: ~12.x-0
     repository: 'file://components/message-router'
diff --git a/kubernetes/dmaap/components/dmaap-strimzi/templates/dmaap-strimzi-kb.yaml b/kubernetes/dmaap/components/dmaap-strimzi/templates/dmaap-strimzi-kb.yaml
deleted file mode 100644
index 8dd7eb9..0000000
--- a/kubernetes/dmaap/components/dmaap-strimzi/templates/dmaap-strimzi-kb.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-{{/*
-# Copyright © 2022 Nordix Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-*/}}
-apiVersion: kafka.strimzi.io/v1beta2
-kind: KafkaBridge
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-spec:
-  replicas: {{ .Values.kafkaBridgeReplicaCount }}
-  enableMetrics: false
-  bootstrapServers: {{ include "common.release" . }}-{{ .Values.global.kafkaBootstrap }}:{{ .Values.global.kafkaInternalPort }}
-  authentication:
-    type: {{ .Values.global.saslMechanism }}
-    username: {{ .Values.global.kafkaStrimziAdminUser }}
-    passwordSecret:
-      secretName: {{ .Values.global.kafkaStrimziAdminUser }}
-      password: password
-  http:
-    port: {{ .Values.kafkaBridgePort }}
diff --git a/kubernetes/dmaap/components/message-router/resources/config/dmaap/MsgRtrApi.properties b/kubernetes/dmaap/components/message-router/resources/config/dmaap/MsgRtrApi.properties
index 3acea02..a9b0a01 100755
--- a/kubernetes/dmaap/components/message-router/resources/config/dmaap/MsgRtrApi.properties
+++ b/kubernetes/dmaap/components/message-router/resources/config/dmaap/MsgRtrApi.properties
@@ -28,9 +28,9 @@
 ##        Items below are passed through to Kafka's producer and consumer
 ##        configurations (after removing "kafka.")
 ##        if you want to change request.required.acks it can take this one value
-kafka.metadata.broker.list={{ include "common.release" . }}-{{ .Values.global.kafkaBootstrap }}:{{ .Values.global.kafkaInternalPort }}
-config.zk.servers=127.0.0.1:{{ .Values.global.zkTunnelService.internalPort }}
 #kafka.request.required.acks=-1
+kafka.metadata.broker.list={{ include "common.release" . }}-strimzi-kafka-bootstrap:9092
+config.zk.servers=127.0.0.1:{{ .Values.global.zkTunnelService.internalPort }}
 consumer.timeout.ms=100
 zookeeper.connection.timeout.ms=6000
 zookeeper.session.timeout.ms=20000
diff --git a/kubernetes/dmaap/components/message-router/templates/statefulset.yaml b/kubernetes/dmaap/components/message-router/templates/statefulset.yaml
index 0fba655..904c160 100644
--- a/kubernetes/dmaap/components/message-router/templates/statefulset.yaml
+++ b/kubernetes/dmaap/components/message-router/templates/statefulset.yaml
@@ -150,7 +150,7 @@
           - name: JAASLOGIN
             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "mr-kafka-admin-secret" "key" "sasl.jaas.config") | indent 12 }}
           - name: SASLMECH
-            value: {{ .Values.global.saslMechanism }}
+            value: scram-sha-512
           - name: enableCadi
             value: "{{ .Values.global.aafEnabled }}"
           - name: useZkTopicStore
diff --git a/kubernetes/dmaap/components/message-router/values.yaml b/kubernetes/dmaap/components/message-router/values.yaml
index f9904e6..80460ba 100644
--- a/kubernetes/dmaap/components/message-router/values.yaml
+++ b/kubernetes/dmaap/components/message-router/values.yaml
@@ -19,15 +19,16 @@
 #################################################################
 global:
   nodePortPrefix: 302
-  kafkaBootstrap: strimzi-kafka-bootstrap
-  saslMechanism: scram-sha-512
-  kafkaInternalPort: 9092
   zkTunnelService:
     type: ClusterIP
     name: zk-tunnel-svc
     portName: tcp-zk-tunnel
     internalPort: 2181
 
+zookeeper:
+  entrance:
+    image: scholzj/zoo-entrance:latest
+
 #################################################################
 # AAF part
 #################################################################
@@ -71,10 +72,6 @@
 image: onap/dmaap/dmaap-mr:1.4.3
 pullPolicy: Always
 
-zookeeper:
-  entrance:
-    image: scholzj/zoo-entrance:latest
-
 secrets:
   - uid: mr-kafka-admin-secret
     externalSecret: '{{ tpl (default "" .Values.config.jaasConfExternalSecret) . }}'
diff --git a/kubernetes/dmaap/values.yaml b/kubernetes/dmaap/values.yaml
index cf65674..1cb537b 100644
--- a/kubernetes/dmaap/values.yaml
+++ b/kubernetes/dmaap/values.yaml
@@ -38,10 +38,7 @@
   aafEnabled: true
 
   #Strimzi config
-  kafkaBootstrap: strimzi-kafka-bootstrap
   kafkaStrimziAdminUser: strimzi-kafka-admin
-  kafkaInternalPort: 9092
-  saslMechanism: scram-sha-512
 
 #Component overrides
 message-router:
diff --git a/kubernetes/onap/resources/environments/core-onap.yaml b/kubernetes/onap/resources/environments/core-onap.yaml
index abf2cd1..8a4bb70 100644
--- a/kubernetes/onap/resources/environments/core-onap.yaml
+++ b/kubernetes/onap/resources/environments/core-onap.yaml
@@ -16,7 +16,7 @@
 # This override file is used to deploy a core configuration. It is based on
 # minimal-onap.yaml and Orange accomplishments [1][2][3].
 # It includes the following components:
-# AAI, DMAAP, SDC, SDNC, SO (+ Cassandra)
+# AAI, DMAAP Message Router, SDC, SDNC, SO (+ Cassandra), STRIMZI Kafka
 #
 # Minimal resources are also reviewed for the various containers
 # AAI: no override => to be fixed
@@ -75,6 +75,14 @@
   enabled: false
 dmaap:
   enabled: true
+  message-router:
+    enabled: true
+  dmaap-bc:
+    enabled: false
+  dmaap-dr-prov:
+    enabled: false
+  dmaap-dr-node:
+    enabled: false
 log:
   enabled: false
 mariadb-galera:
@@ -126,6 +134,16 @@
     openStackKeyStoneUrl: "$OPENSTACK_KEYSTONE_URL"
     openStackServiceTenantName: "$OPENSTACK_TENANT_NAME"
     openStackEncryptedPasswordHere: "$OPENSTACK_ENCRYPTED_PASSWORD"
+strimzi:
+  enabled: true
+  replicaCount: 2
+  persistence:
+    kafka:
+      size: 1Gi
+    zookeeper:
+      size: 500Mbi
+  strimzi-kafka-bridge:
+    enabled: false
 uui:
   enabled: false
 vid:
diff --git a/kubernetes/onap/resources/environments/dev.yaml b/kubernetes/onap/resources/environments/dev.yaml
index e2971f7..2caad2d 100644
--- a/kubernetes/onap/resources/environments/dev.yaml
+++ b/kubernetes/onap/resources/environments/dev.yaml
@@ -137,6 +137,8 @@
   mariadb:
     config:
       mariadbRootPassword: password
+strimzi:
+  enabled: false
 uui:
   enabled: false
 vfc:
diff --git a/kubernetes/onap/resources/environments/disable-allcharts.yaml b/kubernetes/onap/resources/environments/disable-allcharts.yaml
index 092dc1a..43aa4c8 100644
--- a/kubernetes/onap/resources/environments/disable-allcharts.yaml
+++ b/kubernetes/onap/resources/environments/disable-allcharts.yaml
@@ -77,6 +77,8 @@
   enabled: false
 so:
   enabled: false
+strimzi:
+  enabled: false
 uui:
   enabled: false
 vfc:
diff --git a/kubernetes/onap/resources/environments/minimal-onap.yaml b/kubernetes/onap/resources/environments/minimal-onap.yaml
index 12cccfb..7bfa258 100644
--- a/kubernetes/onap/resources/environments/minimal-onap.yaml
+++ b/kubernetes/onap/resources/environments/minimal-onap.yaml
@@ -16,7 +16,7 @@
 # This override file is used to deploy a minimal configuration to
 # onboard and deploy a VNF.
 # It includes the following components:
-# A&AI, Cassandra, DMAAP, Portal, Robot, SDC, SDNC, SO, VID
+# A&AI, Cassandra, DMAAP Message Router, Portal, Robot, SDC, SDNC, SO, STRIMZI Kafka, VID
 #
 # Minimal resources are also reviewed for the various containers
 # A&AI: no override => to be fixed
@@ -70,6 +70,14 @@
   enabled: false
 dmaap:
   enabled: true
+  message-router:
+    enabled: true
+  dmaap-bc:
+    enabled: false
+  dmaap-dr-prov:
+    enabled: false
+  dmaap-dr-node:
+    enabled: false
 log:
   enabled: false
 mariadb-galera:
@@ -170,6 +178,16 @@
     openStackKeyStoneUrl: "$OPENSTACK_KEYSTONE_URL"
     openStackServiceTenantName: "$OPENSTACK_TENANT_NAME"
     openStackEncryptedPasswordHere: "$OPENSTACK_ENCRYPTED_PASSWORD"
+strimzi:
+  enabled: true
+  replicaCount: 1
+  persistence:
+    kafka:
+      size: 1Gi
+    zookeeper:
+      size: 500Mbi
+  strimzi-kafka-bridge:
+    enabled: false
 uui:
   enabled: false
 vid:
diff --git a/kubernetes/onap/resources/overrides/onap-5g-network-slicing.yaml b/kubernetes/onap/resources/overrides/onap-5g-network-slicing.yaml
index 6686e16..506dd4f 100644
--- a/kubernetes/onap/resources/overrides/onap-5g-network-slicing.yaml
+++ b/kubernetes/onap/resources/overrides/onap-5g-network-slicing.yaml
@@ -102,6 +102,14 @@
   enabled: false
 dmaap:
   enabled: true
+  message-router:
+    enabled: true
+  dmaap-bc:
+    enabled: false
+  dmaap-dr-prov:
+    enabled: false
+  dmaap-dr-node:
+    enabled: false
 log:
   enabled: true
 sniro-emulator:
@@ -161,6 +169,10 @@
     openStackServiceTenantName: "service"
     openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
 
+strimzi:
+  enabled: true
+  strimzi-kafka-bridge:
+    enabled: false
 uui:
   enabled: true
 vfc:
diff --git a/kubernetes/onap/resources/overrides/onap-all-ingress-istio.yaml b/kubernetes/onap/resources/overrides/onap-all-ingress-istio.yaml
index 3f2854e..9b85bd9 100644
--- a/kubernetes/onap/resources/overrides/onap-all-ingress-istio.yaml
+++ b/kubernetes/onap/resources/overrides/onap-all-ingress-istio.yaml
@@ -112,6 +112,14 @@
   enabled: true
 dmaap:
   enabled: true
+  message-router:
+    enabled: true
+  dmaap-bc:
+    enabled: true
+  dmaap-dr-prov:
+    enabled: true
+  dmaap-dr-node:
+    enabled: true
 oof:
   enabled: true
 msb:
@@ -134,6 +142,8 @@
   enabled: true
 strimzi:
   enabled: true
+  strimzi-kafka-bridge:
+    enabled: true
 uui:
   enabled: true
 vfc:
diff --git a/kubernetes/onap/resources/overrides/onap-all-ingress-nginx-vhost.yaml b/kubernetes/onap/resources/overrides/onap-all-ingress-nginx-vhost.yaml
index 54e2cf3..37d6844 100644
--- a/kubernetes/onap/resources/overrides/onap-all-ingress-nginx-vhost.yaml
+++ b/kubernetes/onap/resources/overrides/onap-all-ingress-nginx-vhost.yaml
@@ -61,6 +61,14 @@
   enabled: true
 dmaap:
   enabled: true
+  message-router:
+    enabled: true
+  dmaap-bc:
+    enabled: true
+  dmaap-dr-prov:
+    enabled: true
+  dmaap-dr-node:
+    enabled: true
 oof:
   enabled: true
 msb:
@@ -83,6 +91,8 @@
   enabled: true
 strimzi:
   enabled: true
+  strimzi-kafka-bridge:
+    enabled: true
 uui:
   enabled: true
 vfc:
diff --git a/kubernetes/onap/resources/overrides/onap-all.yaml b/kubernetes/onap/resources/overrides/onap-all.yaml
index 849b55f..aeac83f 100644
--- a/kubernetes/onap/resources/overrides/onap-all.yaml
+++ b/kubernetes/onap/resources/overrides/onap-all.yaml
@@ -99,6 +99,14 @@
   enabled: true
 dmaap:
   enabled: true
+  message-router:
+    enabled: true
+  dmaap-bc:
+    enabled: true
+  dmaap-dr-prov:
+    enabled: true
+  dmaap-dr-node:
+    enabled: true
 oof:
   enabled: true
 msb:
@@ -121,6 +129,8 @@
   enabled: true
 strimzi:
   enabled: true
+  strimzi-kafka-bridge:
+    enabled: true
 uui:
   enabled: true
 vfc:
diff --git a/kubernetes/onap/resources/overrides/onap-vfw.yaml b/kubernetes/onap/resources/overrides/onap-vfw.yaml
index 053f56e..fc0c94d 100644
--- a/kubernetes/onap/resources/overrides/onap-vfw.yaml
+++ b/kubernetes/onap/resources/overrides/onap-vfw.yaml
@@ -37,6 +37,14 @@
   enabled: true
 dmaap:
   enabled: true
+  message-router:
+    enabled: true
+  dmaap-bc:
+    enabled: false
+  dmaap-dr-prov:
+    enabled: false
+  dmaap-dr-node:
+    enabled: false
 log:
   enabled: true
 oof:
@@ -57,5 +65,7 @@
   enabled: true
 strimzi:
   enabled: true
+  strimzi-kafka-bridge:
+    enabled: false
 vid:
   enabled: true
diff --git a/kubernetes/onap/resources/overrides/sm-onap.yaml b/kubernetes/onap/resources/overrides/sm-onap.yaml
index b4d928b..1d3b2eb 100644
--- a/kubernetes/onap/resources/overrides/sm-onap.yaml
+++ b/kubernetes/onap/resources/overrides/sm-onap.yaml
@@ -20,7 +20,8 @@
 #
 # Minimal resources are also reviewed for the various containers
 # AAI: no override => to be fixed
-# DMAAP: no override # SO: no override
+# DMAAP: no override
+# SO: no override
 # SDC: new values
 # SDNC: no override
 #
@@ -82,6 +83,16 @@
   enabled: false
 dcaegen2-services:
   enabled: false
+dmaap:
+  enabled: true
+  message-router:
+    enabled: true
+  dmaap-bc:
+    enabled: true
+  dmaap-dr-prov:
+    enabled: true
+  dmaap-dr-node:
+    enabled: true
 holmes:
   enabled: false
 log:
@@ -137,6 +148,8 @@
     openStackEncryptedPasswordHere: "$OPENSTACK_ENCRYPTED_PASSWORD"
 strimzi:
   enabled: true
+  strimzi-kafka-bridge:
+    enabled: true
 uui:
   enabled: false
 vid:
@@ -147,7 +160,4 @@
   enabled: false
 cds:
   enabled: true
-dmaap:
-  enabled: true
-  dmaap-bc:
-    enabled: false
+
diff --git a/kubernetes/onap/values.yaml b/kubernetes/onap/values.yaml
index 8a6af16..48f1489 100755
--- a/kubernetes/onap/values.yaml
+++ b/kubernetes/onap/values.yaml
@@ -303,9 +303,17 @@
   enabled: false
 dmaap:
   enabled: false
+  message-router:
+    enabled: false
+  dmaap-bc:
+    enabled: false
+  dmaap-dr-prov:
+    enabled: false
+  dmaap-dr-node:
+    enabled: false
 # Today, "logging" chart that perform the central part of logging must also be
 # enabled in order to make it work. So `logging.enabled` must have the same
-# value than centralizedLoggingEnabled
+# value as centralizedLoggingEnabled
 log:
   enabled: *centralizedLogging
 sniro-emulator:
@@ -370,8 +378,22 @@
   #   server:
   #     monitoring:
   #       password: demo123456!
+
 strimzi:
   enabled: false
+  # Kafka replication & disk storage should be dimensioned
+  # according to each given system use case.
+  replicaCount: 3
+  persistence:
+    kafka:
+      size: 10Gi
+    zookeeper:
+      size: 1Gi
+  # Strimzi kafka bridge is an optional http api towards
+  # kafka provided by https://strimzi.io/docs/bridge/latest/
+  strimzi-kafka-bridge:
+    enabled: false
+
 uui:
   enabled: false
 vfc:
@@ -386,7 +408,6 @@
   enabled: false
 a1policymanagement:
   enabled: false
-
 cert-wrapper:
   enabled: true
 repository-wrapper:
diff --git a/kubernetes/strimzi/Chart.yaml b/kubernetes/strimzi/Chart.yaml
index 57201cf..4ef20e1 100644
--- a/kubernetes/strimzi/Chart.yaml
+++ b/kubernetes/strimzi/Chart.yaml
@@ -13,16 +13,13 @@
 # limitations under the License.
 
 apiVersion: v2
-description: ONAP Strimzi kafka
+description: ONAP Strimzi Kafka
 name: strimzi
 version: 12.0.0
 
 dependencies:
   - name: common
     version: ~12.x-0
-    # local reference to common chart, as it is
-    # a part of this chart's package and will not
-    # be published independently to a repo (at this point)
     repository: '@local'
   - name: repositoryGenerator
     version: ~12.x-0
@@ -30,4 +27,8 @@
   - name: serviceAccount
     version: ~12.x-0
     repository: '@local'
+  - name: strimzi-kafka-bridge
+    version: ~12.x-0
+    repository: 'file://components/strimzi-kafka-bridge'
+    condition: strimzi-kafka-bridge.enabled
 
diff --git a/kubernetes/dmaap/components/dmaap-strimzi/.helmignore b/kubernetes/strimzi/components/strimzi-kafka-bridge/.helmignore
similarity index 100%
rename from kubernetes/dmaap/components/dmaap-strimzi/.helmignore
rename to kubernetes/strimzi/components/strimzi-kafka-bridge/.helmignore
diff --git a/kubernetes/dmaap/components/dmaap-strimzi/Chart.yaml b/kubernetes/strimzi/components/strimzi-kafka-bridge/Chart.yaml
similarity index 65%
rename from kubernetes/dmaap/components/dmaap-strimzi/Chart.yaml
rename to kubernetes/strimzi/components/strimzi-kafka-bridge/Chart.yaml
index ec11510..8c290b2 100644
--- a/kubernetes/dmaap/components/dmaap-strimzi/Chart.yaml
+++ b/kubernetes/strimzi/components/strimzi-kafka-bridge/Chart.yaml
@@ -13,20 +13,11 @@
 # limitations under the License.
 
 apiVersion: v2
-description: ONAP Dmaap Strimzi Kafka Bridge
-name: dmaap-strimzi
+description: ONAP Strimzi Kafka Bridge
+name: strimzi-kafka-bridge
 version: 12.0.0
 
 dependencies:
   - name: common
     version: ~12.x-0
-    # local reference to common chart, as it is
-    # a part of this chart's package and will not
-    # be published independently to a repo (at this point)
-    repository: '@local'
-  - name: repositoryGenerator
-    version: ~12.x-0
-    repository: '@local'
-  - name: serviceAccount
-    version: ~12.x-0
     repository: '@local'
diff --git a/kubernetes/dmaap/components/dmaap-strimzi/Makefile b/kubernetes/strimzi/components/strimzi-kafka-bridge/Makefile
similarity index 100%
rename from kubernetes/dmaap/components/dmaap-strimzi/Makefile
rename to kubernetes/strimzi/components/strimzi-kafka-bridge/Makefile
diff --git a/kubernetes/strimzi/components/strimzi-kafka-bridge/templates/strimzi-kb.yaml b/kubernetes/strimzi/components/strimzi-kafka-bridge/templates/strimzi-kb.yaml
new file mode 100644
index 0000000..3abb04a
--- /dev/null
+++ b/kubernetes/strimzi/components/strimzi-kafka-bridge/templates/strimzi-kb.yaml
@@ -0,0 +1,30 @@
+{{/*
+# Copyright © 2022 Nordix Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+apiVersion: kafka.strimzi.io/v1beta2
+kind: KafkaBridge
+metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  bootstrapServers: {{ include "common.release" . }}-strimzi-kafka-bootstrap:{{ .Values.config.kafkaInternalPort }}
+  authentication:
+    type: {{ .Values.config.saslMechanism }}
+    username: {{ .Values.config.strimziKafkaAdminUser }}
+    passwordSecret:
+      secretName: {{ .Values.config.strimziKafkaAdminUser }}
+      password: password
+  enableMetrics: {{ .Values.config.enableMetrics }}
+  http:
+    port: {{ .Values.config.port }}
diff --git a/kubernetes/dmaap/components/dmaap-strimzi/values.yaml b/kubernetes/strimzi/components/strimzi-kafka-bridge/values.yaml
similarity index 69%
rename from kubernetes/dmaap/components/dmaap-strimzi/values.yaml
rename to kubernetes/strimzi/components/strimzi-kafka-bridge/values.yaml
index 8e8802d..8a4c4cd 100644
--- a/kubernetes/dmaap/components/dmaap-strimzi/values.yaml
+++ b/kubernetes/strimzi/components/strimzi-kafka-bridge/values.yaml
@@ -16,22 +16,20 @@
 # Global configuration defaults.
 #################################################################
 global:
-  kafkaBootstrap: strimzi-kafka-bootstrap
-  kafkaStrimziAdminUser: strimzi-kafka-admin
-  kafkaInternalPort: 9092
-  saslMechanism: scram-sha-512
 
 #################################################################
 # Application configuration defaults.
 #################################################################
-kafkaBridgeReplicaCount: 1
-kafkaBridgePort: 8080
+replicaCount: 1
+config:
+  port: 8080
+  enableMetrics: false
+  # The following config should be set/overridden
+  # from parent chart kubernetes/strimzi/values.yaml
+  saslMechanism: parentValue
+  kafkaInternalPort: parentValue
+  strimziKafkaAdminUser: parentValue
 
-ingress:
-  enabled: false
-
-#Pods Service Account
-serviceAccount:
-  nameOverride: dmaap-strimzi
-  roles:
-    - read
+# nameOverride is required to avoid duplication
+# in pod and service names ie ...-bridge-bridge-{random hex}
+nameOverride: strimzi-kafka
diff --git a/kubernetes/strimzi/templates/pv-kafka.yaml b/kubernetes/strimzi/templates/pv-kafka.yaml
index 616f03e..efd4902 100644
--- a/kubernetes/strimzi/templates/pv-kafka.yaml
+++ b/kubernetes/strimzi/templates/pv-kafka.yaml
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 */}}
-{{ include "common.replicaPV" (dict "dot" . "suffix" "kafka" "persistenceInfos" .Values.persistenceKafka) }}
+{{ include "common.replicaPV" (dict "dot" . "suffix" "kafka" "persistenceInfos" .Values.persistence.kafka) }}
diff --git a/kubernetes/strimzi/templates/pv-zk.yaml b/kubernetes/strimzi/templates/pv-zk.yaml
index 60f4ca6..2c5a8e3 100644
--- a/kubernetes/strimzi/templates/pv-zk.yaml
+++ b/kubernetes/strimzi/templates/pv-zk.yaml
@@ -13,5 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 */}}
-
-{{ include "common.replicaPV" (dict "dot" . "suffix" "zk" "persistenceInfos" .Values.persistenceZk) }}
+{{ include "common.replicaPV" (dict "dot" . "suffix" "zk" "persistenceInfos" .Values.persistence.zookeeper) }}
diff --git a/kubernetes/strimzi/templates/strimzi-kafka-admin-user.yaml b/kubernetes/strimzi/templates/strimzi-kafka-admin-user.yaml
index 2653c67..c1bf4b8 100644
--- a/kubernetes/strimzi/templates/strimzi-kafka-admin-user.yaml
+++ b/kubernetes/strimzi/templates/strimzi-kafka-admin-user.yaml
@@ -16,14 +16,14 @@
 apiVersion: kafka.strimzi.io/v1beta2
 kind: KafkaUser
 metadata:
-  name: {{ .Values.kafkaStrimziAdminUser }}
+  name: {{ .Values.config.strimziKafkaAdminUser }}
   labels:
     strimzi.io/cluster: {{ include "common.release" . }}-strimzi
 spec:
   authentication:
-    type: {{ .Values.saslMechanism }}
+    type: {{ .Values.config.saslMechanism }}
   authorization:
-    type: simple
+    type: {{ .Values.config.authType }}
     acls:
     - resource:
         type: group
diff --git a/kubernetes/strimzi/templates/strimzi-kafka.yaml b/kubernetes/strimzi/templates/strimzi-kafka.yaml
index 03ee56a..b35485f 100644
--- a/kubernetes/strimzi/templates/strimzi-kafka.yaml
+++ b/kubernetes/strimzi/templates/strimzi-kafka.yaml
@@ -15,25 +15,18 @@
 */}}
 apiVersion: kafka.strimzi.io/v1beta2
 kind: Kafka
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
+metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
 spec:
   kafka:
-    version: {{ .Values.version }}
+    version: {{ .Values.config.kafkaVersion }}
     replicas: {{ .Values.replicaCount }}
     listeners:
       - name: plain
-        port: {{ .Values.kafkaInternalPort }}
+        port: {{ .Values.config.kafkaInternalPort }}
         type: internal
         tls: false
         authentication:
-          type: {{ .Values.saslMechanism }}
+          type: {{ .Values.config.saslMechanism }}
       - name: tls
         port: 9093
         type: internal
@@ -57,9 +50,9 @@
             - broker: 2
               nodePort: {{ .Values.global.nodePortPrefixExt }}92
     authorization:
-      type: simple
+      type: {{ .Values.config.authType }}
       superUsers:
-        - {{ .Values.kafkaStrimziAdminUser }}
+        - {{ .Values.config.strimziKafkaAdminUser }}
     template:
       pod:
         securityContext:
@@ -67,21 +60,21 @@
           fsGroup: 0
     config:
       default.replication.factor: {{ .Values.replicaCount }}
-      min.insync.replicas: {{ .Values.replicaCount }}
+      min.insync.replicas: {{ (eq 1.0 (.Values.replicaCount)) | ternary 1 (sub .Values.replicaCount 1) }}
       offsets.topic.replication.factor: {{ .Values.replicaCount }}
+      num.partitions: {{ mul .Values.replicaCount 2 }}
       transaction.state.log.replication.factor: {{ .Values.replicaCount }}
-      num.partitions: {{ .Values.numPartitions }}
-      transaction.state.log.min.isr: {{ .Values.replicaCount }}
-      log.message.format.version: {{ .Values.version }}
-      inter.broker.protocol.version: {{ .Values.version }}
+      transaction.state.log.min.isr: {{ (eq 1.0 (.Values.replicaCount)) | ternary 1 (sub .Values.replicaCount 1) }}
+      log.message.format.version: {{ .Values.config.kafkaVersion }}
+      inter.broker.protocol.version: {{ .Values.config.kafkaVersion }}
     storage:
       type: jbod
       volumes:
       - id: 0
         type: persistent-claim
-        size: {{ .Values.persistenceKafka.size }}
+        size: {{ .Values.persistence.kafka.size }}
         deleteClaim: true
-        class: {{ include "common.storageClass" (dict "dot" . "suffix" "kafka" "persistenceInfos" .Values.persistenceKafka) }}
+        class: {{ include "common.storageClass" (dict "dot" . "suffix" "kafka" "persistenceInfos" .Values.persistence.kafka) }}
   zookeeper:
     template:
       pod:
@@ -97,9 +90,9 @@
       {{- end }}
     storage:
       type: persistent-claim
-      size: {{ .Values.persistenceZk.size }}
+      size: {{ .Values.persistence.zookeeper.size }}
       deleteClaim: true
-      class: {{ include "common.storageClass" (dict "dot" . "suffix" "zk" "persistenceInfos" .Values.persistenceZk) }}
+      class: {{ include "common.storageClass" (dict "dot" . "suffix" "zk" "persistenceInfos" .Values.persistence.zookeeper) }}
   entityOperator:
     topicOperator: {}
     userOperator: {}
diff --git a/kubernetes/strimzi/values.yaml b/kubernetes/strimzi/values.yaml
index 99ccde5..e6da1d5 100644
--- a/kubernetes/strimzi/values.yaml
+++ b/kubernetes/strimzi/values.yaml
@@ -19,35 +19,49 @@
   nodePortPrefixExt: 304
   persistence:
     mountPath: /dockerdata-nfs
-
 #################################################################
 # Application configuration defaults.
 #################################################################
 replicaCount: 3
-numPartitions: 10
-kafkaInternalPort: 9092
-saslMechanism: scram-sha-512
-version: 3.2.3
-kafkaStrimziAdminUser: strimzi-kafka-admin
-persistence: {}
+config:
+  kafkaVersion: 3.2.3
+  authType: simple
+  saslMechanism: &saslMech scram-sha-512
+  kafkaInternalPort: &plainPort 9092
+  strimziKafkaAdminUser: &adminUser strimzi-kafka-admin
 
-persistenceKafka:
-  enabled: true
-  size: 2Gi
-  volumeReclaimPolicy: Retain
-  accessMode: ReadWriteOnce
+persistence:
+  enabled: &pvenabled true
   mountPath: /dockerdata-nfs
-  mountSubPath: strimzi-kafka/kafka
-persistenceZk:
-  enabled: true
-  size: 2Gi
-  volumeReclaimPolicy: Retain
-  accessMode: ReadWriteOnce
-  mountPath: /dockerdata-nfs
-  mountSubPath: strimzi-kafka/zk
+  kafka:
+    enabled: *pvenabled
+    # default values of 2Gi for dev env.
+    # Production values should be dimensioned according to requirements. ie >= 10Gi
+    size: 2Gi
+    volumeReclaimPolicy: Retain
+    accessMode: ReadWriteOnce
+    mountPath: /dockerdata-nfs
+    mountSubPath: strimzi-kafka/kafka
+  zookeeper:
+    enabled: *pvenabled
+    size: 1Gi
+    volumeReclaimPolicy: Retain
+    accessMode: ReadWriteOnce
+    mountPath: /dockerdata-nfs
+    mountSubPath: strimzi-kafka/zk
 
 #Pods Service Account
 serviceAccount:
   nameOverride: strimzi-kafka
   roles:
     - read
+
+######################
+#  Component overrides
+######################
+strimzi-kafka-bridge:
+  enabled: true
+  config:
+    saslMechanism: *saslMech
+    kafkaInternalPort: *plainPort
+    strimziKafkaAdminUser: *adminUser
\ No newline at end of file