AAI information model extended with object to hold basic information 51/123051/5
authorMarcin Krasowski <m.krasowski@samsung.com>
Tue, 3 Aug 2021 08:05:34 +0000 (10:05 +0200)
committerMarcin Krasowski <m.krasowski@samsung.com>
Mon, 9 Aug 2021 12:26:08 +0000 (14:26 +0200)
about k8s resources.

AAI was extended with the object to hold basic information on kubernetes
resources (CNF) and its relations to other entities like tenant, vnf
modules etc. More can be found here:
https://wiki.onap.org/display/DW/Simplified+K8S+Resource+Model+-+IM

Issue-ID: AAI-3205
Signed-off-by: Marcin Krasowski <m.krasowski@samsung.com>
Change-Id: Iec879011d604438c4ae0e2991bf945edd6f48e08

aai-schema/src/main/resources/onap/dbedgerules/v24/DbEdgeRules_v24.json
aai-schema/src/main/resources/onap/oxm/v24/aai_oxm_v24.xml

index 6826a78..b289a6b 100644 (file)
                        "prevent-delete": "NONE",
                        "default": "true",
                        "description":"Used by Auditing applications to identify appropriate audit models based on the platform associated with the given object"
-               }
+               },{
+            "from": "k8s-resource",
+            "to": "tenant",
+            "label": "org.onap.relationships.inventory.BelongsTo",
+            "direction": "OUT",
+            "multiplicity": "MANY2ONE",
+                       "contains-other-v": "!${direction}",
+                       "delete-other-v": "NONE",
+                       "prevent-delete": "!${direction}",
+                       "default": "true",
+                       "description":""
+        },{
+            "from": "vf-module",
+            "to": "k8s-resource",
+            "label": "org.onap.relationships.inventory.Uses",
+            "direction": "OUT",
+            "multiplicity": "ONE2MANY",
+                       "contains-other-v": "NONE",
+                       "delete-other-v": "NONE",
+                       "prevent-delete": "NONE",
+                       "default": "true",
+                       "description":""
+        },{
+            "from": "generic-vnf",
+            "to": "k8s-resource",
+            "label": "tosca.relationships.HostedOn",
+            "direction": "OUT",
+            "multiplicity": "ONE2MANY",
+                       "contains-other-v": "NONE",
+                       "delete-other-v": "NONE",
+                       "prevent-delete": "NONE",
+                       "default": "true",
+                       "description":""
+        }
        ]
 }
index 6c730a3..c0c2c87 100644 (file)
                 <xml-element java-attribute="vservers" name="vservers" type="inventory.aai.onap.org.v24.Vservers"/>
                 <xml-element java-attribute="nosServers" name="nos-servers" type="inventory.aai.onap.org.v24.NosServers"/>
                 <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v24.RelationshipList"/>
+                <xml-element java-attribute="k8sResources" name="k8s-resources" type="inventory.aai.onap.org.v24.K8sResources"/>
             </java-attributes>
             <xml-properties>
                 <xml-property name="description" value="Openstack tenant"/>
                                <xml-property name="uriTemplate" value="/service-instances/service-instance/{service-instance-id}/slice-profiles/slice-profile/{profile-id}"/>
                                <xml-property name="searcheable" value="profile-id"/>
                        </xml-properties>
-               </java-type>
+        </java-type>
+
+        <java-type name="K8sResources">
+            <xml-properties>
+                <xml-property name="description" value="Collection of kubernetes resources."/>
+            </xml-properties>
+            <xml-root-element name="k8s-resources"/>
+            <java-attributes>
+                <xml-element container-type="java.util.ArrayList" java-attribute="k8sResource" name="k8s-resource" type="inventory.aai.onap.org.v24.K8sResource"/>
+            </java-attributes>
+        </java-type>
+
+        <java-type name="K8sResource">
+            <xml-root-element name="k8s-resource"/>
+            <java-attributes>
+                <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true">
+                    <xml-properties>
+                        <xml-property name="description" value="Unique id of k8s resource.  This is unique across the graph."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="name" name="name" required="true" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Name of the kubernetes resource."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="group" name="group" required="true" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Kubernetes resource group."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="version" name="version" required="true" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Resource version."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="kind" name="kind" required="true" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Resource kind as defined by kubernetes e.g. pod, service, etc."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="namespace" name="namespace" required="true" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Namespace in which resource is placed."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element container-type="java.util.ArrayList" java-attribute="labels" name="labels" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Kubernetes resource labels."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="selflink" name="selflink" required="true" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Query towards SO CNF adapter to retrieve full resource data."/>
+                    </xml-properties>
+                </xml-element>
+            </java-attributes>
+            <xml-properties>
+                <xml-property name="description" value="General purpose kubernetes resource."/>
+                <xml-property name="indexedProps" value="id,name,kind"/>
+                <xml-property name="searchable" value="id"/>
+                <xml-property name="dependentOn" value="tenant"/>
+                <xml-property name="container" value="k8s-resources"/>
+                <xml-property name="uriTemplate" value="/k8s-resources/k8s-resource/{k8s-resource-id}"/>
+                <xml-property name="requiredProps" value="id,description,name,group,version,kind,namespace,selflink"/>
+             </xml-properties>
+        </java-type>
        </java-types>
 </xml-bindings>