diff options
author | 2018-08-20 15:50:50 -0700 | |
---|---|---|
committer | 2018-08-24 15:51:16 -0700 | |
commit | a1373742a2c3f980360e4980f3b23b0ff3480ae6 (patch) | |
tree | ce2fb583dea15b8a546d794d21786fdf0f666539 /doc | |
parent | 6ff216219ccb4567baeb34c9dba73daabb60f629 (diff) |
Seed code for k8s multicloud plugin
This patch provides the initial seed code for the multicloud Kubernetes
plugin and also provides the plugin feature to add new Kubernetes
kinds.
Change-Id: Ie5ee414656665070cde2834c4855ac2ebc179a9a
Issue-ID: MULTICLOUD-301
Signed-off-by: Shashank Kumar Shankar <shashank.kumar.shankar@intel.com>
Signed-off-by: Victor Morales <victor.morales@intel.com>
Diffstat (limited to 'doc')
-rw-r--r-- | doc/create_vl.png | bin | 0 -> 36106 bytes | |||
-rw-r--r-- | doc/create_vnf.png | bin | 0 -> 47090 bytes | |||
-rw-r--r-- | doc/sampleCommands.rst | 71 | ||||
-rw-r--r-- | doc/swagger.yaml | 184 |
4 files changed, 255 insertions, 0 deletions
diff --git a/doc/create_vl.png b/doc/create_vl.png Binary files differnew file mode 100644 index 00000000..803b6da8 --- /dev/null +++ b/doc/create_vl.png diff --git a/doc/create_vnf.png b/doc/create_vnf.png Binary files differnew file mode 100644 index 00000000..27b50d79 --- /dev/null +++ b/doc/create_vnf.png diff --git a/doc/sampleCommands.rst b/doc/sampleCommands.rst new file mode 100644 index 00000000..e8b53cf3 --- /dev/null +++ b/doc/sampleCommands.rst @@ -0,0 +1,71 @@ +# Copyright 2018 Intel Corporation. +# 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. + +# Sample Commands: + +* POST + URL:`localhost:8081/v1/vnf_instances/cloudregion1/namespacetest` + Request Body: + + ``` + { + "cloud_region_id": "region1", + "csar_id": "uuid", + "namespace": "test", + "oof_parameters": [{ + "key1": "value1", + "key2": "value2", + "key3": {} + }], + "network_parameters": { + "oam_ip_address": { + "connection_point": "string", + "ip_address": "string", + "workload_name": "string" + } + } + } + ``` + + Expected Response: + ``` + { + "response": "Created Deployment:nginx-deployment" + } + ``` + + The above POST request will download the following YAML file and run it on the Kubernetes cluster. + + ``` + apiVersion: apps/v1 + kind: Deployment + metadata: + name: nginx-deployment + labels: + app: nginx + spec: + replicas: 3 + selector: + matchLabels: + app: nginx + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx:1.7.9 + ports: + - containerPort: 80 + ``` +* GET + URL: `localhost:8081/v1/vnf_instances` diff --git a/doc/swagger.yaml b/doc/swagger.yaml new file mode 100644 index 00000000..3b7e36ba --- /dev/null +++ b/doc/swagger.yaml @@ -0,0 +1,184 @@ +# Copyright 2018 Intel Corporation. +# 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. + +swagger: "2.0" +info: + description: "API reference for MultiCloud Kubernetes Plugin." + version: "1.0.0" + title: "API reference for MultiCloud Kubernetes Plugin." + contact: + url: "https://wiki.onap.org/display/DW/Support+for+K8S+%28Kubernetes%29+based+Cloud+regions" + license: + name: "Apache 2.0" + url: "http://www.apache.org/licenses/LICENSE-2.0.html" +basePath: "/v1.0" +schemes: +- "http" +paths: + /vnf_instances: + post: + tags: + - "Deployment of VNF Containers" + summary: "Create Kubernetes based VNFs." + description: "Endpoint to create Kubernetes based VNFs." + consumes: + - "application/json" + produces: + - "application/json" + parameters: + - in: "body" + name: "body" + description: "Create new VNF containers" + required: true + schema: + $ref: "#/definitions/POSTRequest" + responses: + 200: + description: "successful operation" + schema: + $ref: "#/definitions/POSTResponse" + /vnf_instances/: + get: + tags: + - "Deployment of VNF Containers" + summary: "List all Kubernetes based VNFs." + description: "Endpoint to list all Kubernetes based VNF." + produces: + - "application/json" + responses: + 200: + description: "successful operation" + schema: + $ref: "#/definitions/GETSResponse" + /vnf_instances/{name}: + get: + tags: + - "Deployment of VNF Containers" + summary: "Get details of a Kubernetes based VNFs." + description: "Endpoint to get details of a Kubernetes based VNFs." + produces: + - "application/json" + parameters: + - name: "name" + in: "path" + description: "Name used to query" + required: true + type: "string" + responses: + 200: + description: "successful operation" + schema: + $ref: "#/definitions/GETResponse" + patch: + tags: + - "Deployment of VNF Containers" + summary: "Update a Kubernetes based VNFs." + description: "Endp to update a Kubernetes based VNFs." + produces: + - "application/json" + parameters: + - name: "name" + in: "path" + description: "Name used to patch" + required: true + type: "string" + - name: "body" + in: "body" + description: "Patch an existing Kubernetes based VNFs." + required: true + schema: + $ref: "#/definitions/PATCHRequest" + responses: + 200: + description: "successful operation" + schema: + $ref: "#/definitions/PATCHResponse" + delete: + tags: + - "Deployment of VNF Containers" + summary: "Delete a Kubernetes based VNFs." + description: "Endpoint to delete a Kubernetes based VNFs." + produces: + - "application/json" + parameters: + - name: "name" + in: "path" + description: "Name used to delete" + required: true + type: "string" + responses: + 200: + description: "successful operation" + schema: + $ref: "#/definitions/DELETEResponse" +definitions: + POSTRequest: + type: "object" + properties: + cloud_region_id: + type: "string" + csar_id: + type: "string" + namespace: + type: "string" + oof_parameters: + items: + type: "object" + additionalProperties: true + example: + key1: value1 + key2: value2 + key3: {} + network_parameters: + type: "object" + properties: + oam_ip_address: + type: "object" + properties: + connection_point: + type: "string" + ip_address: + type: "string" + workload_name: + type: "string" + POSTResponse: + type: "object" + properties: + vnf_id: + type: "string" + name: + type: "string" + GETSResponse: + type: "object" + properties: + vnf_list: + items: + type: "string" + GETResponse: + type: "object" + properties: + response: + type: "string" + PATCHRequest: + type: "object" + properties: + name: + type: "string" + PATCHResponse: + type: "object" + properties: + response: + type: "string" + DELETEResponse: + type: "object" + properties: + response: + type: "string"
\ No newline at end of file |