--- /dev/null
+# Copyright (C) 2022 Wind River Systems, Inc.
+#
+# 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: v1
+kind: ConfigMap
+metadata:
+ name: {{ .Chart.Name }}-application-config
+ namespace: {{ .Values.global.namespace }}
+ labels:
+ release: {{ .Release.Name }}
+ app: {{ include "orano2.name" . }}
+ chart: {{ .Chart.Name }}
+# ...
+data:
+ config.json: |
+{{ .Values.applicationconfig | indent 4 }}
--- /dev/null
+# Copyright (C) 2022 Wind River Systems, Inc.
+#
+# 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: v1
+kind: ConfigMap
+metadata:
+ name: {{ .Chart.Name }}-caconfig
+ namespace: {{ .Values.global.namespace }}
+ labels:
+ release: {{ .Release.Name }}
+ app: {{ include "orano2.name" . }}
+ chart: {{ .Chart.Name }}
+# ...
+data:
+ config.json: |
+{{ .Values.caconfig | indent 4 }}
mountPath: /opt
- name: configs
mountPath: /configs
+ - name: applicationconfig
+ mountPath: /configs/o2app.conf
+ subPath: config.json
+ readOnly: true
+ - name: caconfig
+ mountPath: /configs/ca.cert
+ subPath: config.json
+ readOnly: true
+ - name: serverkeyconfig
+ mountPath: /configs/server.key
+ subPath: config.json
+ readOnly: true
- name: helmcli
image: "{{ .Values.o2ims.image.repository }}:{{ .Values.o2ims.image.tag }}"
ports:
volumeMounts:
- name: scripts
mountPath: /opt
- - name: configs
- mountPath: /configs
volumes:
- name: scripts
configMap:
name: {{ .Chart.Name }}-scripts-configmap
- name: configs
emptyDir: {}
+ - configMap:
+ name: {{ .Chart.Name }}-application-config
+ name: applicationconfig
+ - configMap:
+ name: {{ .Chart.Name }}-serverkeyconfig
+ name: serverkeyconfig
+ - configMap:
+ name: {{ .Chart.Name }}-caconfig
+ name: caconfig
---
+
--- /dev/null
+# Copyright (C) 2022 Wind River Systems, Inc.
+#
+# 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: v1
+kind: ConfigMap
+metadata:
+ name: {{ .Chart.Name }}-serverkeyconfig
+ namespace: {{ .Values.global.namespace }}
+ labels:
+ release: {{ .Release.Name }}
+ app: {{ include "orano2.name" . }}
+ chart: {{ .Chart.Name }}
+# ...
+data:
+ config.json: |
+{{ .Values.serverkeyconfig | indent 4 }}
nameOverride: ""
fullnameOverride: ""
+applicationconfig:
+
+caconfig:
+
+serverkeyconfig:
+
resources:
cpu: 1
memory: 2Gi
#export the smo account token data
export SMO_TOKEN_DATA=$(kubectl -n default describe secret $(kubectl -n default get secret | grep ${SMO_SERVICEACCOUNT} | awk '{print $1}') | grep "token:" | awk '{print $2}')
+ #prepare the application config file
+ cat <<EOF >app.conf
+ [DEFAULT]
+
+ ocloud_global_id = 4e24b97c-8c49-4c4f-b53e-3de5235a4e37
+ smo_register_url = http://127.0.0.1:8090/register
+ smo_token_data = ${SMO_TOKEN_DATA}
+
+ [API]
+ test = "hello"
+
+ [WATCHER]
+
+ [PUBSUB]
+
+ EOF
+
+ #prepare the ssl cert files or generate with below command.
+
+ PARENT="imsserver"
+ openssl req \
+ -x509 \
+ -newkey rsa:4096 \
+ -sha256 \
+ -days 365 \
+ -nodes \
+ -keyout $PARENT.key \
+ -out $PARENT.crt \
+ -subj "/CN=${PARENT}" \
+ -extensions v3_ca \
+ -extensions v3_req \
+ -config <( \
+ echo '[req]'; \
+ echo 'default_bits= 4096'; \
+ echo 'distinguished_name=req'; \
+ echo 'x509_extension = v3_ca'; \
+ echo 'req_extensions = v3_req'; \
+ echo '[v3_req]'; \
+ echo 'basicConstraints = CA:FALSE'; \
+ echo 'keyUsage = nonRepudiation, digitalSignature, keyEncipherment'; \
+ echo 'subjectAltName = @alt_names'; \
+ echo '[ alt_names ]'; \
+ echo "DNS.1 = www.${PARENT}"; \
+ echo "DNS.2 = ${PARENT}"; \
+ echo '[ v3_ca ]'; \
+ echo 'subjectKeyIdentifier=hash'; \
+ echo 'authorityKeyIdentifier=keyid:always,issuer'; \
+ echo 'basicConstraints = critical, CA:TRUE, pathlen:0'; \
+ echo 'keyUsage = critical, cRLSign, keyCertSign'; \
+ echo 'extendedKeyUsage = serverAuth, clientAuth')
+
cat <<EOF>o2service-override.yaml
o2ims:
imagePullSecrets: admin-orano2-registry-secret
.. code:: shell
- helm install o2service o2/charts/ -f o2service-override.yaml
+ helm install o2service o2/charts --set-file caconfig="./imsserver.cert" --set-file applicationconfig="./app.conf" --set-file serverkeyconfig="./imsserver.key" -f o2service-override.yaml
helm list |grep o2service
kubectl -n ${NAMESPACE} get pods |grep o2api
kubectl -n ${NAMESPACE} get services |grep o2api
curl -k http(s)://<OAM IP>:30205/o2ims_infrastructureInventory/v1/
-2.5 INF O2 Service API Swagger
+2.5 INF O2 Service API Swagger
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Swagger UI can be found with URL: http(s)://<OAM IP>:30205
-
+
3. Register INF O2 Service to SMO
---------------------------------