[AAI-SDC-DIST] Updgrade AAI to use kafka native 21/132421/5
authordavid.mcweeney <david.mcweeney@est.tech>
Wed, 23 Nov 2022 12:59:04 +0000 (12:59 +0000)
committerFiachra Corcoran <fiachra.corcoran@est.tech>
Wed, 30 Nov 2022 08:05:06 +0000 (08:05 +0000)
Update AAI to use new sdc-dist client
Add AAI KafkaUser for SDC topic auth

Signed-off-by: david.mcweeney <david.mcweeney@est.tech>
Change-Id: I842b9dc33c9bff94a81fef3990e1b66c5984e0d1
Issue-ID: DMAAP-1815

kubernetes/aai/components/aai-modelloader/resources/config/model-loader.properties
kubernetes/aai/components/aai-modelloader/templates/aai-sdc-list-kafka-user.yaml [new file with mode: 0644]
kubernetes/aai/components/aai-modelloader/templates/deployment.yaml
kubernetes/aai/components/aai-modelloader/templates/secret.yaml
kubernetes/aai/components/aai-modelloader/values.yaml
kubernetes/aai/values.yaml

index 681da5d..bc53b4b 100644 (file)
@@ -30,14 +30,13 @@ ml.distribution.KEYSTORE_PASSWORD=
 ml.distribution.KEYSTORE_FILE=
 ml.distribution.PASSWORD=OBF:1ks51l8d1o3i1pcc1r2r1e211r391kls1pyj1z7u1njf1lx51go21hnj1y0k1mli1sop1k8o1j651vu91mxw1vun1mze1vv11j8x1k5i1sp11mjc1y161hlr1gm41m111nkj1z781pw31kku1r4p1e391r571pbm1o741l4x1ksp
 {{ end }}
-ml.distribution.CONSUMER_GROUP=aai-ml-group
-ml.distribution.CONSUMER_ID=aai-ml
+ml.distribution.CONSUMER_GROUP={{ .Values.config.kafka.sdcTopic.consumerGroup }}
+ml.distribution.CONSUMER_ID={{ .Values.config.kafka.sdcTopic.clientId }}
 ml.distribution.ENVIRONMENT_NAME=AUTO
 ml.distribution.POLLING_INTERVAL=30
 ml.distribution.POLLING_TIMEOUT=20
 ml.distribution.USER=aai
 ml.distribution.ARTIFACT_TYPES=MODEL_QUERY_SPEC,TOSCA_CSAR
-ml.distribution.MSG_BUS_ADDRESSES=message-router.{{.Release.Namespace}}
 
 # Model Loader AAI REST Client Configuration
 {{ if ( include "common.needTLS" .) }}
diff --git a/kubernetes/aai/components/aai-modelloader/templates/aai-sdc-list-kafka-user.yaml b/kubernetes/aai/components/aai-modelloader/templates/aai-sdc-list-kafka-user.yaml
new file mode 100644 (file)
index 0000000..d7e37e2
--- /dev/null
@@ -0,0 +1,37 @@
+{{/*
+  # 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.global.aaiSdcListenerKafkaUser }}
+  labels:
+    strimzi.io/cluster: {{ include "common.release" . }}-strimzi
+spec:
+  authentication:
+    type: {{ .Values.config.kafka.saslMechanism | lower }}
+  authorization:
+    type: {{ .Values.config.kafka.authType }}
+    acls:
+      - resource:
+          type: group
+          name: {{ .Values.config.kafka.sdcTopic.consumerGroup }}
+        operation: All
+      - resource:
+          type: topic
+          patternType: prefix
+          name: {{ .Values.config.kafka.sdcTopic.pattern }}
+        operation: All
index 8e481b9..d3136d8 100644 (file)
@@ -102,6 +102,12 @@ spec:
         env:
         - name: CONFIG_HOME
           value: /opt/app/model-loader/config/
+        - name: SECURITY_PROTOCOL
+          value: {{ .Values.config.kafka.securityProtocol }}
+        - name: SASL_MECHANISM
+          value: {{ .Values.config.kafka.saslMechanism }}
+        - name: SASL_JAAS_CONFIG
+          value: {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "aai-sdc-kafka-secret" "key" "sasl.jaas.config") | indent 10 }}
         volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 8 }}
         - mountPath: /etc/localtime
           name: localtime
index d6013c8..70b0857 100644 (file)
@@ -27,3 +27,5 @@ metadata:
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/config/auth/*").AsSecrets . | indent 2 }}
+---
+{{ include "common.secretFast" . }}
\ No newline at end of file
index 1188f9b..09bb32d 100644 (file)
 # Declare variables to be passed into your templates.
 global: # global defaults
   nodePortPrefix: 302
+  aaiSdcListenerKafkaUser: aai-sdc-list-user
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: aai-sdc-kafka-secret
+    externalSecret: '{{ tpl (default "" .Values.config.jaasConfExternalSecret) . }}'
+    type: genericKV
+    envs:
+      - name: sasl.jaas.config
+        value: '{{ .Values.config.someConfig }}'
+        policy: generate
 
 #################################################################
 # Certificate configuration
@@ -56,13 +68,23 @@ certInitializer:
     chown -R {{ .Values.user_id }}:{{ .Values.group_id }} {{ .Values.credsPath }}
 
 # application image
-image: onap/model-loader:1.11.0
+image: onap/model-loader:1.12.0
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
 flavorOverride: small
+
 # application configuration
-config: {}
+config:
+  someConfig: blah
+  kafka:
+    securityProtocol: SASL_PLAINTEXT
+    saslMechanism: SCRAM-SHA-512
+    authType: simple
+    sdcTopic:
+      pattern: SDC-DIST
+      consumerGroup: aai
+      clientId: aai-model-loader
 
 # default number of instances
 replicaCount: 1
index 0ba461c..d382b80 100644 (file)
@@ -277,12 +277,16 @@ global: # global defaults
         # since when this is enabled, it prints a lot of information to console
         enabled: false
 
+  aaiSdcListenerKafkaUser: aai-sdc-list-user
+
 aai-babel:
   logConfigMapNamePrefix: '{{ include "common.release" . }}-aai'
 aai-graphadmin:
   logConfigMapNamePrefix: '{{ include "common.release" . }}-aai'
 aai-modelloader:
   logConfigMapNamePrefix: '{{ include "common.release" . }}-aai'
+  config:
+    jaasConfExternalSecret: '{{ include "common.release" . }}-{{ .Values.global.aaiSdcListenerKafkaUser }}'
 aai-resources:
   logConfigMapNamePrefix: '{{ include "common.release" . }}-aai'
 aai-schema-service: