From c87dbc30928b4a9d05062ac842ec6749ee25ab3c Mon Sep 17 00:00:00 2001 From: "david.mcweeney" Date: Wed, 23 Nov 2022 12:59:04 +0000 Subject: [PATCH] [AAI-SDC-DIST] Updgrade AAI to use kafka native Update AAI to use new sdc-dist client Add AAI KafkaUser for SDC topic auth Signed-off-by: david.mcweeney Change-Id: I842b9dc33c9bff94a81fef3990e1b66c5984e0d1 Issue-ID: DMAAP-1815 --- .../resources/config/model-loader.properties | 5 ++- .../templates/aai-sdc-list-kafka-user.yaml | 37 ++++++++++++++++++++++ .../aai-modelloader/templates/deployment.yaml | 6 ++++ .../aai-modelloader/templates/secret.yaml | 2 ++ .../aai/components/aai-modelloader/values.yaml | 26 +++++++++++++-- kubernetes/aai/values.yaml | 4 +++ 6 files changed, 75 insertions(+), 5 deletions(-) create mode 100644 kubernetes/aai/components/aai-modelloader/templates/aai-sdc-list-kafka-user.yaml diff --git a/kubernetes/aai/components/aai-modelloader/resources/config/model-loader.properties b/kubernetes/aai/components/aai-modelloader/resources/config/model-loader.properties index 681da5d069..bc53b4b764 100644 --- a/kubernetes/aai/components/aai-modelloader/resources/config/model-loader.properties +++ b/kubernetes/aai/components/aai-modelloader/resources/config/model-loader.properties @@ -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 index 0000000000..d7e37e215a --- /dev/null +++ b/kubernetes/aai/components/aai-modelloader/templates/aai-sdc-list-kafka-user.yaml @@ -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 diff --git a/kubernetes/aai/components/aai-modelloader/templates/deployment.yaml b/kubernetes/aai/components/aai-modelloader/templates/deployment.yaml index 8e481b9656..d3136d8dda 100644 --- a/kubernetes/aai/components/aai-modelloader/templates/deployment.yaml +++ b/kubernetes/aai/components/aai-modelloader/templates/deployment.yaml @@ -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 diff --git a/kubernetes/aai/components/aai-modelloader/templates/secret.yaml b/kubernetes/aai/components/aai-modelloader/templates/secret.yaml index d6013c832e..70b0857938 100644 --- a/kubernetes/aai/components/aai-modelloader/templates/secret.yaml +++ b/kubernetes/aai/components/aai-modelloader/templates/secret.yaml @@ -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 diff --git a/kubernetes/aai/components/aai-modelloader/values.yaml b/kubernetes/aai/components/aai-modelloader/values.yaml index 1188f9b645..09bb32dd43 100644 --- a/kubernetes/aai/components/aai-modelloader/values.yaml +++ b/kubernetes/aai/components/aai-modelloader/values.yaml @@ -18,6 +18,18 @@ # 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 diff --git a/kubernetes/aai/values.yaml b/kubernetes/aai/values.yaml index 0ba461c4c7..d382b80ba0 100644 --- a/kubernetes/aai/values.yaml +++ b/kubernetes/aai/values.yaml @@ -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: -- 2.16.6