[DCAE-HV-VES] Move to use strimzi kafka tpl

Move hv-ves to use strimzi kakfa tpl
Topic naming is invalid so adding overrides to tpl

Signed-off-by: efiacor <fiachra.corcoran@est.tech>
Change-Id: Ied93c6329f51c3219b09b4f67f174c9e15727188
Issue-ID: DMAAP-1854
diff --git a/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/hv-ves-kafka-user.yaml b/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/hv-ves-kafka-user.yaml
deleted file mode 100644
index ff977aa..0000000
--- a/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/hv-ves-kafka-user.yaml
+++ /dev/null
@@ -1,47 +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: KafkaUser
-metadata:
-  name: {{ include "common.release" . }}-{{ .Values.hvVesKafkaUser }}
-  labels:
-    strimzi.io/cluster: {{ include "common.release" . }}-strimzi
-spec:
-  authentication:
-    type: scram-sha-512
-  authorization:
-    type: simple
-    acls:
-    - resource:
-        type: topic
-        name: {{ index .Values "applicationConfig" "streams_publishes" "ves-3gpp-fault-supervision" "kafka_info" "topic_name" }}
-      operation: Write
-    - resource:
-        type: topic
-        name: {{ index .Values "applicationConfig" "streams_publishes" "ves-3gpp-provisioning" "kafka_info" "topic_name" }}
-      operation: Write
-    - resource:
-        type: topic
-        name: {{ index .Values "applicationConfig" "streams_publishes" "ves-3gpp-heartbeat" "kafka_info" "topic_name" }}
-      operation: Write
-    - resource:
-        type: topic
-        name: {{ index .Values "applicationConfig" "streams_publishes" "ves-3gpp-performance-assurance" "kafka_info" "topic_name" }}
-      operation: Write
-    - resource:
-        type: topic
-        name: {{ .Values.applicationConfig.streams_publishes.perf3gpp.kafka_info.topic_name }}
-      operation: Write
diff --git a/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/hv-ves-topics.yaml b/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/hv-ves-topics.yaml
deleted file mode 100644
index e407758..0000000
--- a/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/hv-ves-topics.yaml
+++ /dev/null
@@ -1,79 +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: KafkaTopic
-metadata:
-  name: ves-3gpp-fault-supervision
-  labels:
-    strimzi.io/cluster: {{ include "common.release" . }}-strimzi
-spec:
-  topicName: {{ index .Values "applicationConfig" "streams_publishes" "ves-3gpp-fault-supervision" "kafka_info" "topic_name" }}
-  partitions: 10
-  config:
-    retention.ms: 7200000
-    segment.bytes: 1073741824
----
-apiVersion: kafka.strimzi.io/v1beta2
-kind: KafkaTopic
-metadata:
-  name: ves-3gpp-provisioning
-  labels:
-    strimzi.io/cluster: {{ include "common.release" . }}-strimzi
-spec:
-  topicName: {{ index .Values "applicationConfig" "streams_publishes" "ves-3gpp-provisioning" "kafka_info" "topic_name" }}
-  partitions: 10
-  config:
-    retention.ms: 7200000
-    segment.bytes: 1073741824
----
-apiVersion: kafka.strimzi.io/v1beta2
-kind: KafkaTopic
-metadata:
-  name: ves-3gpp-heartbeat
-  labels:
-    strimzi.io/cluster: {{ include "common.release" . }}-strimzi
-spec:
-  topicName: {{ index .Values "applicationConfig" "streams_publishes" "ves-3gpp-heartbeat" "kafka_info" "topic_name" }}
-  partitions: 10
-  config:
-    retention.ms: 7200000
-    segment.bytes: 1073741824
----
-apiVersion: kafka.strimzi.io/v1beta2
-kind: KafkaTopic
-metadata:
-  name: ves-3gpp-performance-assurance
-  labels:
-    strimzi.io/cluster: {{ include "common.release" . }}-strimzi
-spec:
-  topicName: {{ index .Values "applicationConfig" "streams_publishes" "ves-3gpp-performance-assurance" "kafka_info" "topic_name" }}
-  partitions: 10
-  config:
-    retention.ms: 7200000
-    segment.bytes: 1073741824
----
-apiVersion: kafka.strimzi.io/v1beta2
-kind: KafkaTopic
-metadata:
-  name: perf3gpp
-  labels:
-    strimzi.io/cluster: {{ include "common.release" . }}-strimzi
-spec:
-  topicName: {{ .Values.applicationConfig.streams_publishes.perf3gpp.kafka_info.topic_name }}
-  partitions: 10
-  config:
-    retention.ms: 7200000
-    segment.bytes: 1073741824
diff --git a/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/kafkatopic.yaml b/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/kafkatopic.yaml
new file mode 100644
index 0000000..d1d21a6
--- /dev/null
+++ b/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/kafkatopic.yaml
@@ -0,0 +1,16 @@
+{{/*
+# Copyright © 2023 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.
+*/}}
+{{ include "common.kafkatopic" . }}
diff --git a/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/kafkauser.yaml b/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/kafkauser.yaml
new file mode 100644
index 0000000..6fc37c3
--- /dev/null
+++ b/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/kafkauser.yaml
@@ -0,0 +1,16 @@
+{{/*
+# Copyright © 2023 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.
+*/}}
+{{ include "common.kafkauser" . }}
diff --git a/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml b/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml
index 351998a..482d88e 100644
--- a/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml
@@ -2,7 +2,7 @@
 # ================================================================================
 # Copyright (c) 2021-2022 J. F. Lucas. All rights reserved.
 # Copyright (c) 2021-2022 Nokia.  All rights reserved.
-# Copyright © 2022 Nordix Foundation
+# Modifications Copyright (C) 2022-2023 Nordix Foundation.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -45,6 +45,9 @@
 image: onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.11.0
 pullPolicy: Always
 
+commonName: &commonName dcae-hv-ves-collector
+containerPort: &containerPort 6061
+
 # log directory where logging sidecar should look for log files
 # if path is set to null sidecar won't be deployed in spite of
 # global.centralizedLoggingEnabled setting.
@@ -61,17 +64,6 @@
 # and key from AAF and mount them in certDirectory.
 tlsServer: false
 
-secrets:
-  - uid: hv-ves-kafka-secret
-    externalSecret: '{{ tpl (default "" .Values.config.jaasConfExternalSecret) . }}'
-    type: genericKV
-    envs:
-      - name: sasl.jaas.config
-        value: '{{ .Values.config.someConfig }}'
-        policy: generate
-config:
-  someConfig: blah
-
 # CMPv2 certificate
 # It is used only when:
 # - certDirectory is set
@@ -81,9 +73,9 @@
 useCmpv2Certificates: false
 certificates:
   - mountPath: /etc/ves-hv/ssl/external
-    commonName: dcae-hv-ves-collector
+    commonName: *commonName
     dnsNames:
-      - dcae-hv-ves-collector
+      - *commonName
       - hv-ves-collector
       - hv-ves
     keystore:
@@ -106,16 +98,16 @@
 # since there are problems receiving binary data via the sidecar
 # the service port is excluded in the sidecar processing
 podAnnotations:
-  traffic.sidecar.istio.io/excludeInboundPorts: "6061"
+  traffic.sidecar.istio.io/excludeInboundPorts: '6061'
   traffic.sidecar.istio.io/includeInboundPorts: '*'
 
 # service configuration
 service:
   type: NodePort
-  name: dcae-hv-ves-collector
+  name: *commonName
   ports:
     - name: tcp
-      port: 6061
+      port: *containerPort
       port_protocol: tcp
       app_protocol: tcp
       nodePort: 22
@@ -124,19 +116,16 @@
   enabled: false
   service:
     - baseaddr: "dcae-hv-ves-collector-api"
-      name: "dcae-hv-ves-collector"
-      port: 6061
+      name: *commonName
+      port: *containerPort
   config:
     ssl: "redirect"
 
-#strimzi kafka config
-hvVesKafkaUser: dcae-hv-ves-kafka-user
-
 # initial application configuration
 applicationConfig:
   logLevel: INFO
   server.idleTimeoutSec: 300
-  server.listenPort: 6061
+  server.listenPort: *containerPort
   cbs.requestIntervalSec: 5
   security.sslDisable: true
   security.keys.keyStoreFile: /etc/ves-hv/ssl/cert.jks
@@ -145,40 +134,70 @@
   security.keys.trustStorePasswordFile: /etc/ves-hv/ssl/trust.pass
   streams_publishes:
     ves-3gpp-fault-supervision:
-      type: kafka
+      type: ${MESSAGING_TYPE}
       kafka_info:
         bootstrap_servers: ${KAFKA_BOOTSTRAP_SERVERS}
-        topic_name: SEC_3GPP_FAULTSUPERVISION_OUTPUT
+        topic_name: &ves3gppFaultSupervision SEC_3GPP_FAULTSUPERVISION_OUTPUT
     ves-3gpp-provisioning:
-      type: kafka
+      type: ${MESSAGING_TYPE}
       kafka_info:
         bootstrap_servers: ${KAFKA_BOOTSTRAP_SERVERS}
-        topic_name: SEC_3GPP_PROVISIONING_OUTPUT
+        topic_name: &ves3gppProvisioning SEC_3GPP_PROVISIONING_OUTPUT
     ves-3gpp-heartbeat:
-      type: kafka
+      type: ${MESSAGING_TYPE}
       kafka_info:
         bootstrap_servers: ${KAFKA_BOOTSTRAP_SERVERS}
-        topic_name: SEC_3GPP_HEARTBEAT_OUTPUT
+        topic_name: &ves3gppHeartbeat SEC_3GPP_HEARTBEAT_OUTPUT
     ves-3gpp-performance-assurance:
-      type: kafka
+      type: ${MESSAGING_TYPE}
       kafka_info:
         bootstrap_servers: ${KAFKA_BOOTSTRAP_SERVERS}
-        topic_name: SEC_3GPP_PERFORMANCEASSURANCE_OUTPUT
+        topic_name: &ves3gppPerformanceAssurance SEC_3GPP_PERFORMANCEASSURANCE_OUTPUT
     perf3gpp:
-      type: kafka
+      type: ${MESSAGING_TYPE}
       kafka_info:
         bootstrap_servers: ${KAFKA_BOOTSTRAP_SERVERS}
-        topic_name: HV_VES_PERF3GPP
+        topic_name: &perf3gpp HV_VES_PERF3GPP
+
+# Strimzi Kafka config
+kafkaUser:
+  acls:
+    - name: SEC_3GPP
+      type: topic
+      patternType: prefix
+      operations: [Write, DescribeConfigs]
+    - name: *perf3gpp
+      type: topic
+      operations: [Write, DescribeConfigs]
+
+kafkaTopic:
+  - name: *ves3gppFaultSupervision
+    strimziTopicName: dcae-ves-3gpp-fault-supervision
+    # the default retention values below can be updated
+    # to meet use case requirements for each topic.
+    retentionMs: 7200000
+    segmentBytes: 1073741824
+  - name: *ves3gppProvisioning
+    strimziTopicName: dcae-ves-3gpp-provisioning
+  - name: *ves3gppHeartbeat
+    strimziTopicName: dcae-ves-3gpp-heartbeat
+  - name: *ves3gppPerformanceAssurance
+    strimziTopicName: dcae-ves-3gpp-performance-assurance
+  - name: *perf3gpp
+    strimziTopicName: dcae-ves-3gpp-perf
+
 
 applicationEnv:
   JAVA_OPTS: '-Dlogback.configurationFile=/etc/ONAP/dcae-hv-ves-collector/logback.xml'
   CBS_CLIENT_CONFIG_PATH: '/app-config-input/application_config.yaml'
   #Temporary Dummy CBS Port Value until internal SDK library is updated
   CONFIG_BINDING_SERVICE_SERVICE_PORT: '0000'
+  MESSAGING_TYPE: 'kafka'
   KAFKA_BOOTSTRAP_SERVERS: '{{ include "common.release" . }}-strimzi-kafka-bootstrap:9092'
   USE_SCRAM: 'true'
   JAAS_CONFIG:
-    secretUid: hv-ves-kafka-secret
+    externalSecret: true
+    externalSecretUid: '{{ include "common.name" . }}-ku'
     key: sasl.jaas.config
 
 # Resource Limit flavor -By Default using small
@@ -203,6 +222,6 @@
 
 #Pods Service Account
 serviceAccount:
-  nameOverride: dcae-hv-ves-collector
+  nameOverride: *commonName
   roles:
     - read