Add Focom to TEIV Adapter charts 58/15358/1
authoraravind.est <aravindhan.a@est.tech>
Wed, 10 Dec 2025 19:16:35 +0000 (19:16 +0000)
committeraravind.est <aravindhan.a@est.tech>
Wed, 10 Dec 2025 19:19:01 +0000 (19:19 +0000)
Focom to TEIV adapter charts added. This charts expect the focom and o2ims cluster's kubeconfig file to be running.
This pod will not throw any error/readiness failure when the kubeconfig is not configured.

Issue-ID: SMO-206
Change-Id: I60d22dd4669e15dab5adf1ee9d6be791029a4b85
Signed-off-by: aravind.est <aravindhan.a@est.tech>
smo-install/helm-override/default/oran-override.yaml
smo-install/oran_oom/smo/topology-exposure-inventory/Chart.yaml
smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/.helmignore [new file with mode: 0644]
smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/Chart.yaml [new file with mode: 0644]
smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/configmap.yaml [new file with mode: 0644]
smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/deployment.yaml [new file with mode: 0644]
smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/kafkauser.yaml [new file with mode: 0644]
smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/secret.yaml [new file with mode: 0644]
smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/service.yaml [new file with mode: 0644]
smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/values.yaml [new file with mode: 0644]
smo-install/oran_oom/smo/topology-exposure-inventory/values.yaml

index 8ddb72b..d318c55 100644 (file)
@@ -187,6 +187,8 @@ smo:
       dependsOn: smo.installTeiv
     - name: ncmp-to-teiv-adapter-ku
       dependsOn: smo.installTeiv
+    - name: focom-to-teiv-adapter-ku
+      dependsOn: smo.installTeiv
     - name: redpanda-console-ku
       dependsOn: nonrtric.installRanpm
 
index a72b1c7..f54161b 100644 (file)
@@ -39,4 +39,7 @@ dependencies:
     alias: topology-ingestion
   - name: ncmp-to-teiv-adapter
     version: 1.0.0
-    repository: "file://charts/ncmp-to-teiv-adapter"
\ No newline at end of file
+    repository: "file://charts/ncmp-to-teiv-adapter"
+  - name: focom-to-teiv-adapter
+    version: 1.0.0
+    repository: "file://charts/focom-to-teiv-adapter"
diff --git a/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/.helmignore b/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/.helmignore
new file mode 100644 (file)
index 0000000..05d5aab
--- /dev/null
@@ -0,0 +1,22 @@
+# Patterns to ignore when building packages.\r
+# This supports shell glob matching, relative path matching, and\r
+# negation (prefixed with !). Only one pattern per line.\r
+.DS_Store\r
+# Common VCS dirs\r
+.git/\r
+.gitignore\r
+.bzr/\r
+.bzrignore\r
+.hg/\r
+.hgignore\r
+.svn/\r
+# Common backup files\r
+*.swp\r
+*.bak\r
+*.tmp\r
+*~\r
+# Various IDEs\r
+.project\r
+.idea/\r
+*.tmproj\r
+.vscode/\r
diff --git a/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/Chart.yaml b/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/Chart.yaml
new file mode 100644 (file)
index 0000000..f9cfcab
--- /dev/null
@@ -0,0 +1,22 @@
+#  ============LICENSE_START===============================================\r
+#  Copyright (C) 2025 OpenInfra Foundation Europe. All rights reserved.\r
+#  ========================================================================\r
+#  Licensed under the Apache License, Version 2.0 (the "License");\r
+#  you may not use this file except in compliance with the License.\r
+#  You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+#  Unless required by applicable law or agreed to in writing, software\r
+#  distributed under the License is distributed on an "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+#  See the License for the specific language governing permissions and\r
+#  limitations under the License.\r
+#  ============LICENSE_END=================================================\r
+#\r
+\r
+apiVersion: v1\r
+appVersion: "1.0.0"\r
+description: A Helm chart for focom teiv adapter\r
+name: focom-to-teiv-adapter\r
+version: 1.0.0\r
diff --git a/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/configmap.yaml b/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..9719d1a
--- /dev/null
@@ -0,0 +1,18 @@
+#  ============LICENSE_START===============================================\r
+#  Copyright (C) 2025 OpenInfra Foundation Europe. All rights reserved.\r
+#  ========================================================================\r
+#  Licensed under the Apache License, Version 2.0 (the "License");\r
+#  you may not use this file except in compliance with the License.\r
+#  You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+#  Unless required by applicable law or agreed to in writing, software\r
+#  distributed under the License is distributed on an "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+#  See the License for the specific language governing permissions and\r
+#  limitations under the License.\r
+#  ============LICENSE_END=================================================\r
+#\r
+\r
+{{ include "common.applicationConfigmap" . }}\r
diff --git a/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/deployment.yaml b/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..6b19b79
--- /dev/null
@@ -0,0 +1,51 @@
+#  ============LICENSE_START===============================================\r
+#  Copyright (C) 2025 OpenInfra Foundation Europe. All rights reserved.\r
+#  ========================================================================\r
+#  Licensed under the Apache License, Version 2.0 (the "License");\r
+#  you may not use this file except in compliance with the License.\r
+#  You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+#  Unless required by applicable law or agreed to in writing, software\r
+#  distributed under the License is distributed on an "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+#  See the License for the specific language governing permissions and\r
+#  limitations under the License.\r
+#  ============LICENSE_END=================================================\r
+#\r
+\r
+kind: Deployment\r
+apiVersion: apps/v1\r
+metadata: {{- include "common.resourceMetadata" . | nindent 2 }}\r
+spec:\r
+  replicas: 1\r
+  selector: {{- include "common.selectors" . | nindent 4 }}\r
+  template:\r
+    metadata: {{- include "common.templateMetadata" . | nindent 6 }}\r
+    spec:\r
+      hostname: {{ include "common.name" . }}\r
+      containers:\r
+      - name: {{ include "common.containername" . }}\r
+        image: {{ include "repository.nexusReleaseRepo" . }}/{{ .Values.image.name }}:{{ .Values.image.tag }}\r
+        imagePullPolicy: {{ .Values.imagePullPolicy }}\r
+{{- if .Values.global.useStrimziKafka }}\r
+        env:\r
+        - name: SPRING_KAFKA_SECURITY_PROPERTIES_SASL_JAAS_CONFIG\r
+          valueFrom:\r
+            secretKeyRef:\r
+              name: {{ include "common.name" . }}-ku\r
+              key: sasl.jaas.config\r
+{{- end }}\r
+        volumeMounts:\r
+        - name: {{ include "common.applicationConfigMountName" . }}\r
+          mountPath: /opt/app/teiv/config\r
+        - name: kubeconfig-volume\r
+          mountPath: /opt/app/teiv/kubeconfig\r
+          readOnly: true\r
+      volumes:\r
+{{- include "common.applicationConfigVolume" . | nindent 6 }}\r
+      - name: kubeconfig-volume\r
+        secret:\r
+          secretName: {{ include "common.name" . }}-kubeconfig\r
+          optional: true\r
diff --git a/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/kafkauser.yaml b/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/kafkauser.yaml
new file mode 100644 (file)
index 0000000..58b3473
--- /dev/null
@@ -0,0 +1,18 @@
+{{/*\r
+# Copyright © 2025  OpenInfra Foundation Europe. All rights reserved.\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+*/}}\r
+{{ if .Values.global.useStrimziKafka }}\r
+{{ include "common.kafkauser" . }}\r
+{{ end }}\r
diff --git a/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/secret.yaml b/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/secret.yaml
new file mode 100644 (file)
index 0000000..97782d6
--- /dev/null
@@ -0,0 +1,32 @@
+#  ============LICENSE_START===============================================\r
+#  Copyright (C) 2025 OpenInfra Foundation Europe. All rights reserved.\r
+#  ========================================================================\r
+#  Licensed under the Apache License, Version 2.0 (the "License");\r
+#  you may not use this file except in compliance with the License.\r
+#  You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+#  Unless required by applicable law or agreed to in writing, software\r
+#  distributed under the License is distributed on an "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+#  See the License for the specific language governing permissions and\r
+#  limitations under the License.\r
+#  ============LICENSE_END=================================================\r
+#\r
+\r
+\r
+apiVersion: v1\r
+kind: Secret\r
+metadata:\r
+  name: {{ include "common.name" . }}-kubeconfig\r
+  namespace: {{ include "common.namespace" . }}\r
+  labels: {{- include "common.labels" . | nindent 4 }}\r
+type: Opaque\r
+data:\r
+  {{- if .Values.kubeconfig.focom }}\r
+  focom-kubeconfig.yaml: {{ .Values.kubeconfig.focom | b64enc | quote }}\r
+  {{- end }}\r
+  {{- if .Values.kubeconfig.o2ims }}\r
+  o2ims-kubeconfig.yaml: {{ .Values.kubeconfig.o2ims | b64enc | quote }}\r
+  {{- end }}
\ No newline at end of file
diff --git a/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/service.yaml b/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/templates/service.yaml
new file mode 100644 (file)
index 0000000..a378412
--- /dev/null
@@ -0,0 +1,18 @@
+#  ============LICENSE_START===============================================\r
+#  Copyright (C) 2025 OpenInfra Foundation Europe. All rights reserved.\r
+#  ========================================================================\r
+#  Licensed under the Apache License, Version 2.0 (the "License");\r
+#  you may not use this file except in compliance with the License.\r
+#  You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+#  Unless required by applicable law or agreed to in writing, software\r
+#  distributed under the License is distributed on an "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+#  See the License for the specific language governing permissions and\r
+#  limitations under the License.\r
+#  ============LICENSE_END=================================================\r
+#\r
+\r
+{{ include "common.service" . }}\r
diff --git a/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/values.yaml b/smo-install/oran_oom/smo/topology-exposure-inventory/charts/focom-to-teiv-adapter/values.yaml
new file mode 100644 (file)
index 0000000..13c4220
--- /dev/null
@@ -0,0 +1,66 @@
+#  ============LICENSE_START===============================================\r
+#  Copyright (C) 2025 OpenInfra Foundation Europe. All rights reserved.\r
+#  ========================================================================\r
+#  Licensed under the Apache License, Version 2.0 (the "License");\r
+#  you may not use this file except in compliance with the License.\r
+#  You may obtain a copy of the License at\r
+#\r
+#       http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+#  Unless required by applicable law or agreed to in writing, software\r
+#  distributed under the License is distributed on an "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+#  See the License for the specific language governing permissions and\r
+#  limitations under the License.\r
+#  ============LICENSE_END=================================================\r
+#\r
+\r
+# These values can/will be overridden from parent values.yaml\r
+\r
+imagePullPolicy: IfNotPresent\r
+image:\r
+  name: "" # Will be set from parent values.yaml\r
+  tag: "" # Will be set from parent values.yaml\r
+service:\r
+  type: ClusterIP\r
+persistence:\r
+  size: 2Gi\r
+  storageClassName: standard\r
+\r
+# Kubeconfig files for FOCOM and O2IMS clusters\r
+# Provide kubeconfig content as YAML string\r
+kubeconfig:\r
+\r
+  # FOCOM cluster kubeconfig (YAML as string)\r
+  focom: ""\r
+\r
+  # O2IMS cluster kubeconfig (YAML as string)\r
+  o2ims: ""\r
+\r
+application:\r
+  spring:\r
+    application:\r
+      name: focom-to-teiv-adapter\r
+    kafka:\r
+      bootstrap-servers: onap-strimzi-kafka-bootstrap.onap:9092\r
+      security:\r
+        enabled: true\r
+        protocol: SASL_PLAINTEXT\r
+        properties:\r
+          sasl.mechanism: SCRAM-SHA-512\r
+          sasl.jaas.config: org.apache.kafka.common.security.scram.ScramLoginModule required username="" password="";\r
+      producer:\r
+        key-serializer: org.apache.kafka.common.serialization.StringSerializer\r
+        value-serializer: io.cloudevents.kafka.CloudEventSerializer\r
+\r
+  kafka:\r
+    topic: topology-inventory-ingestion\r
+\r
+  focom:\r
+    kubeconfig: kubeconfig/focom-kubeconfig.yaml\r
+\r
+  o2ims:\r
+    kubeconfig: kubeconfig/o2ims-kubeconfig.yaml\r
+\r
+  polling:\r
+    interval: 6000\r
index 7a24190..e59be06 100644 (file)
@@ -162,3 +162,74 @@ ncmp-to-teiv-adapter:
       - name: *topologyIngestionTopic
         type: topic
         operations: [Write]
+
+focom-to-teiv-adapter:
+  name: focom-to-teiv-adapter
+  imagePullPolicy: IfNotPresent
+  image:
+    name: o-ran-sc/smo-focom-to-teiv-adapter
+    tag: 0.1.0
+  service:
+    type: ClusterIP
+    ports:
+      - name: http
+        internalPort: "8080"
+        targetPort: "8080"
+        port: 8080
+  liveness:
+    initialDelaySeconds: 20
+    periodSeconds: 10
+  readiness:
+    initialDelaySeconds: 20
+    periodSeconds: 10
+  persistence:
+    size: 2Gi
+    storageClassName: standard
+  kafkaUser:
+    authenticationType: scram-sha-512
+    acls:
+      - name: *topologyIngestionTopic
+        type: topic
+        operations: [Write]
+  # Kubeconfig configuration for FOCOM and O2IMS clusters
+  # Set enabled to true and provide kubeconfig YAML content as string
+  kubeconfig:
+    enabled: false
+    focom: |
+      apiVersion: v1
+      kind: Config
+      clusters:
+      - cluster:
+          certificate-authority-data: LS0tLS1CRUdJTi...
+          server: https://focom-cluster-control-plane:6443
+        name: focom-cluster
+      contexts:
+      - context:
+          cluster: focom-cluster
+          user: focom-admin
+        name: focom-context
+      current-context: focom-context
+      users:
+      - name: focom-admin
+        user:
+          client-certificate-data: LS0tLS1CRUdJTi...
+          client-key-data: LS0tLS1CRUdJTi...
+    o2ims: |
+      apiVersion: v1
+      kind: Config
+      clusters:
+      - cluster:
+          certificate-authority-data: LS0tLS1CRUdJTi...
+          server: https://kind-control-plane:6443
+        name: o2ims-cluster
+      contexts:
+      - context:
+          cluster: o2ims-cluster
+          user: o2ims-admin
+        name: o2ims-context
+      current-context: o2ims-context
+      users:
+      - name: o2ims-admin
+        user:
+          client-certificate-data: LS0tLS1CRUdJTi...
+          client-key-data: LS0tLS1CRUdJTi...