[DCAE-HV-VES] Move to use strimzi kafka tpl 48/133548/5
authorefiacor <fiachra.corcoran@est.tech>
Mon, 6 Mar 2023 09:21:57 +0000 (09:21 +0000)
committerefiacor <fiachra.corcoran@est.tech>
Thu, 9 Mar 2023 13:07:09 +0000 (13:07 +0000)
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

kubernetes/common/common/templates/_strimzikafka.tpl
kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl
kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/hv-ves-kafka-user.yaml [deleted file]
kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/hv-ves-topics.yaml [deleted file]
kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/kafkatopic.yaml [new file with mode: 0644]
kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/templates/kafkauser.yaml [new file with mode: 0644]
kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml
kubernetes/dcaegen2-services/values.yaml
kubernetes/robot/values.yaml
kubernetes/strimzi/templates/strimzi-kafka-admin-user.yaml

index f8f562e..a2e9c90 100644 (file)
@@ -112,7 +112,11 @@ spec:
 apiVersion: kafka.strimzi.io/v1beta2
 kind: KafkaTopic
 metadata:
+  {{- if (hasKey $topic "strimziTopicName") }}
+  name: {{ ($topic.strimziTopicName) }}-kt
+  {{- else }}
   name: {{ ($topic.name) | lower }}-kt
+  {{- end }}
   labels:
     strimzi.io/cluster: {{ include "common.release" $ }}-strimzi
 spec:
index 3b68ad5..6713031 100644 (file)
@@ -60,11 +60,19 @@ the the literal string "An example value".
 - name: {{ $envName }}
   value: {{ tpl $envValue $global | quote }}
       {{- else }}
-        {{ if or (not $envValue.secretUid) (not $envValue.key) }}
-          {{ fail (printf "Env %s definition is not a string and does not contain secretUid or key fields" $envName) }}
-        {{- end }}
+        {{- if and (hasKey $envValue "externalSecret") ($envValue.externalSecret) }}
+- name: {{ $envName }}
+  valueFrom:
+    secretKeyRef:
+      name: {{ tpl $envValue.externalSecretUid $global | quote }}
+      key: {{ tpl $envValue.key $global | quote }}
+        {{- else }}
+          {{ if or (not $envValue.secretUid) (not $envValue.key) }}
+            {{ fail (printf "Env %s definition is not a string and does not contain secretUid or key fields" $envName) }}
+          {{- end }}
 - name: {{ $envName }}
   {{- include "common.secret.envFromSecretFast" (dict "global" $global "uid" $envValue.secretUid "key" $envValue.key) | indent 2 }}
+        {{- end }}
       {{- end -}}
     {{- end }}
   {{- end }}
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 (file)
index ff977aa..0000000
+++ /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 (file)
index e407758..0000000
+++ /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 (file)
index 0000000..d1d21a6
--- /dev/null
@@ -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 (file)
index 0000000..6fc37c3
--- /dev/null
@@ -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" . }}
index 351998a..482d88e 100644 (file)
@@ -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 @@ certPostProcessorImage: onap/org.onap.oom.platform.cert-service.oom-certservice-
 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 @@ certDirectory: /etc/ves-hv/ssl
 # 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 @@ config:
 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 @@ readiness:
 # 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 @@ ingress:
   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 @@ applicationConfig:
   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 @@ resources:
 
 #Pods Service Account
 serviceAccount:
-  nameOverride: dcae-hv-ves-collector
+  nameOverride: *commonName
   roles:
     - read
index a73fceb..f286913 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright (c) 2021 J. F. Lucas.  All rights reserved.
 # Copyright (c) 2021 AT&T. All rights reserved.
-# Modifications Copyright (C) 2021 Nordix Foundation.
+# Modifications Copyright (C) 2021-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.
@@ -16,7 +16,6 @@
 
 global:
   centralizedLoggingEnabled: true
-  hvVesKafkaUser: dcae-hv-ves-kafka-user
   vesOpenApiKafkaUser: ves-open-api-kafka-user
 
 #################################################################
@@ -50,8 +49,6 @@ dcae-heartbeat:
 dcae-hv-ves-collector:
   enabled: true
   logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
-  config:
-    jaasConfExternalSecret: '{{ include "common.release" . }}-{{ .Values.global.hvVesKafkaUser }}'
 dcae-kpi-ms:
   enabled: false
   logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
index 599234e..e87a76d 100644 (file)
@@ -130,8 +130,6 @@ config:
         enabled: false
       policy_apex_pdp:
         enabled: false
-      policy_distribution:
-        enabled: false
       portal_app:
         enabled: false
         https: true
index c1bf4b8..4532777 100644 (file)
@@ -22,10 +22,3 @@ metadata:
 spec:
   authentication:
     type: {{ .Values.config.saslMechanism }}
-  authorization:
-    type: {{ .Values.config.authType }}
-    acls:
-    - resource:
-        type: group
-        name: onap-group
-      operation: Read
\ No newline at end of file