aboutsummaryrefslogtreecommitdiffstats
path: root/src/k8splugin/internal/app
AgeCommit message (Collapse)AuthorFilesLines
2021-04-12Migrate to use Helm v3 librariesRitu Sood2-36/+18
Moving to Helm v3. Updated unit tests. Reworked Healthcheck Execution to align with v3 design. Helm v3 requires newer version for K8s libraries. Moved to use version 0.19.4. Issue-ID: MULTICLOUD-1295 Signed-off-by: Ritu Sood <ritu.sood@intel.com> Signed-off-by: Konrad Bańka <k.banka@samsung.com> Change-Id: I091b75d69841dde56ad2c294cca2d5a0291ffa8f
2021-03-11Remove Hooks field from InstanceResponse http resp jsonKonrad Bańka1-1/+1
Addition of hooks in instantiation response needs to be handled by other parties or else it may break connectivity. Because currently Hooks field doesn't provide any relevant public data, this change makes it hidden. Issue-ID: MULTICLOUD-1311 Signed-off-by: Konrad Bańka <k.banka@samsung.com> Change-Id: I4ca522cf8c6409ddf71fe06de0b905cfdf219a2f
2021-03-09Correct Query API endpoint registrationKonrad Bańka1-1/+5
Apart from corrections, corrected handling of name-only query requests as well as provided bunch of UTs. Issue-ID: MULTICLOUD-1307 Signed-off-by: Konrad Bańka <k.banka@samsung.com> Change-Id: Ida3d3e434525f323bd8c40ddc7ffd58df9c5e831
2021-02-25Provide Healthcheck API MVP0.8.0Konrad Bańka5-12/+51
Implements basic functionality of running starting Healthcheck. Results can be inspected so-far without dedicated API, by using, for example, Query API. Issue-ID: MULTICLOUD-1233 Signed-off-by: Konrad Bańka <k.banka@samsung.com> Change-Id: Ia4d96d936d573173d7d8f41e6c39d059bf5f8b1f
2021-02-25Merge "Provide Query API for CNF Instances"Ritu Sood2-1/+97
2021-02-24Provide Query API for CNF InstancesKonrad Bańka2-2/+98
Query API doesn't directly use Status API code, in order to allow for querying derived resources that might not be typically returned by Status API like replicasets for deployment. Issue-ID: MULTICLOUD-1305 Signed-off-by: Konrad Bańka <k.banka@samsung.com> Change-Id: If15adce23845880f3e6771cc8eab78a78ab13517
2021-02-23Move Day2 Config Values API to new endpointKonrad Bańka4-102/+191
Issue-ID: MULTICLOUD-1280 Signed-off-by: Konrad Bańka <k.banka@samsung.com> Change-Id: Ibeb0920b4ce083f4294b83c887fc7c793a2c3df5
2020-09-30Fix Status API to actually provide instance statusKonrad Bańka3-198/+186
Provide information about instance resources and Pods inside status response. Issue-ID: MULTICLOUD-1177 Signed-off-by: Konrad Bańka <k.banka@samsung.com> Change-Id: Iee6fd56120d091dddfa6b6d0e4aa7eb36d40e888
2020-09-08Provide capability to specify release-name during instantiationKonrad Bańka1-15/+20
Allow release-name property to be provided during instantiation that, if provided, overrides release-name specified in profile. Additionally updated Makefile to allow easy compilation with different go version easily. Issue-ID: MULTICLOUD-1175 Signed-off-by: Konrad Bańka <k.banka@samsung.com> Change-Id: Id8db484369045cfb0bc99543a80317644fc838f9
2020-08-26Improve configure API to support k8s resource updationsvamshi.nemalikonda2-2/+66
Code fore review. Issue-ID: MULTICLOUD-1124 Change-Id: I6bb9786660f6760c15008132f1c254e7f9b39561 Signed-off-by: vamshi.nemalikonda <vn00480215@techmahindra.com> Improve configure API to support k8s resource updations create resource enabled. Issue-ID: MULTICLOUD-1124 Change-Id: I6bb9786660f6760c15008132f1c254e7f9b39561 Signed-off-by: vamshi.nemalikonda <vn00480215@techmahindra.com> Improve configure API to support k8s resource updations code improvements. Issue-ID: MULTICLOUD-1124 Change-Id: I6bb9786660f6760c15008132f1c254e7f9b39561 Signed-off-by: vamshi.nemalikonda <vn00480215@techmahindra.com> Improve configure API to support k8s resource updations fixing unit test failures. Issue-ID: MULTICLOUD-1124 Change-Id: I6bb9786660f6760c15008132f1c254e7f9b39561 Signed-off-by: vamshi.nemalikonda <vn00480215@techmahindra.com>
2020-08-21Expose override parameters usage in KUD API testsKonrad Bańka1-1/+0
Update plugin_fw.sh test script to also check for proper work of override parameters functionality of instance API. Also update instance API response to exclude duplicated override-parameters entry, that's anyway accessible under '.request.override-values' json path. Issue-ID: MULTICLOUD-1176 Signed-off-by: Konrad Bańka <k.banka@samsung.com> Change-Id: Ie1a336ceb7de1a656f77d4c43ee4775c60cb88fb
2020-03-18Added the new plugin_collection_v2 script.Rajamohan Raj1-1/+1
The script calls the major creation APIs in v2 starting from project api, composite app, composite profile, generic placement intent & deployment intent. This should be used every time we need to test the Instantiation code. Also added the helm charts for composite app consisting of collectd and prometheus. Issue-ID: MULTICLOUD-1035 Signed-off-by: Rajamohan Raj <rajamohan.raj@intel.com> Change-Id: I95237c234cca674dd54f4ef7527083b5cf3e0a55
2019-12-19Add support for override valuesKiran Kamineni1-9/+18
Add support for override values which are equivalent to HELM --set options. A typical JSON with this option would look like this: { "rb-name": "edgex", "rb-version": "v1", "profile-name": "profile1", "override-values": { "edgex-core-consul.enabled": "false", "edgex-core-data.enabled": "false" }, "cloud-region": "k8sregionone" } Issue-ID: MULTICLOUD-863 Change-Id: I050b4c1a2922bfe1206964a0135863448638e4ef Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-12-11Fix ensureNamespace behavior failing on missing nsKonrad Bańka1-1/+4
The behavior is now amended to ignore namespace not found errors. Signed-off-by: Konrad Bańka <k.banka@samsung.com> Issue-ID: MULTICLOUD-955 Change-Id: Ifc180eca9e8195c38f0b0f268dd142a329405d3d Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-11-08Update logutils to support multiple fieldsKiran Kamineni1-10/+29
Added support for multiple fields and updated instancehandler and app/client.go to use the new functions Issue-ID: MULTICLOUD-577 Change-Id: I7cc04f67e72448aa121d10cfd80d66d544981933 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-11-01Check for err when namespace plugin returnsKiran Kamineni1-1/+8
Check for err when a namespace GET is called. This will catch any errors related to the cluster GET operations before the subsequent call is made. Issue-ID: MULTICLOUD-666 Change-Id: I47de130f7ae9e6fea627f3a881ea84b2880db886 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-10-15Add unit testsKiran Kamineni1-0/+122
Add unit tests for the handler as well as backend status function Issue-ID: MULTICLOUD-675 Change-Id: I4c73e2c18f243702f3e791fec48d4bc5023cafd5 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-10-15Add a status getter api endpointKiran Kamineni1-4/+52
Add a status endpoint to get status of instances. Status information will be added to the database asynchronously. Issue-ID: MULTICLOUD-675 Change-Id: Ia7d79a6f18f01bf24f2690caf74a48c2a082bd73 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-09-13Update to kubernetes 1.14.1Kiran Kamineni1-3/+3
Updated package to use kubernetes 1.14.1 Also updated the other packages that no longer worked because of this change. Issue-ID: MULTICLOUD-666 Change-Id: Ibfdf7215d8d7beceabe1bf895a356017da0b7d9c Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-08-26Add a namegenerator packageKiran Kamineni1-10/+3
Adds a namegenerator package which generates readable names for instances. This will go with a small change in the API where we expect instance names and will generate the names if they are not provided. Issue-ID: MULTICLOUD-716 Change-Id: I69d8b7fb62667b8b60f3e02eb26dc937961d26d2 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-08-13Add query parameters support to instance APIKiran Kamineni2-155/+85
Add support for query parameters to find instances with rb-name, rb-version, profile-name as query parameters eg: curl IP:PORT/v1/instance?rb-name=test&rb-version=v1 Issue-ID: MULTICLOUD-662 Change-Id: If68c87885c8b8dd097cbb3860e8c7320310a6ef7 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-08-07Add custom label to track created resourcesKiran Kamineni4-8/+22
Create a custom label on created resources Also, create it on pods where pods are being created. This will help us later for filtering and querying pods and resources. Issue-ID: MULTICLOUD-675 Change-Id: I4b4fce7b67f9f27559d99dcca94a9191b96cb7c6 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-08-05Merge "Minor improvement to log statements"Bin Yang1-2/+1
2019-07-23Merge "Add a list api for instances"Bin Yang1-0/+42
2019-07-22Minor improvement to log statementsKiran Kamineni1-2/+1
Removing some log statements that are cluttering the output. Added a log statement to print errors during instantiation. Issue-ID: MULTICLOUD-666 Change-Id: I76ad59c9cb36b5cb999573afec18e6f1adbed4ad Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-07-18Make profile db tags specificKiran Kamineni1-2/+2
Tags used in profile such as metadata are too generic. Instead we are using specific ones with the type prefixed. Issue-ID: MULTICLOUD-730 Change-Id: I2f189d35bc202f4a71e0a92ca5b7188ebfd1cef2 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-07-18Make definition tags specificKiran Kamineni1-2/+2
Tags used in db such as metadata are too generic. Instead we are using specific ones with the type prefixed. Issue-ID: MULTICLOUD-730 Change-Id: Ice76cf743f0782a3d7e76747cde1f0e0b116b14e Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-07-18Add a list api for instancesKiran Kamineni1-0/+42
curl -X GET /v1/instance returns all the instances created. It returns abbreviated instances for improved readability. For details on what resources were created for each instance, use the ID with GET. Issue-ID: MULTICLOUD-715 Change-Id: I05afe0fd2c254acbca4329289c81545f95c9fac5 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-07-16Remove kubeconfigdir. Use a tempfile insteadKiran Kamineni1-2/+2
Kubeconfigdir does not need to be a configurable parameter. We just create a local file and use that to create the config after which it is not needed. Issue-ID: MULTICLOUD-614 Change-Id: I2df561d50b620e24c5ae5266b7200210e0c11caf Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-06-24Change the import paths for go get accessKiran Kamineni7-21/+21
This allows other projects to do a go get and use this repo. go get github.com/multicloud-k8s/src/k8splugin will do the job. import github.com/multicloud-k8s/src/k8splugin will import the root package Issue-ID: MULTICLOUD-666 Change-Id: I2f41c88c5a7fb3305b78cce8a83a0e102baa444c Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-06-06Plugin code refactoringKiran Kamineni2-148/+35
The plugin code has been refactored to implement a common interface. This will allow us to do plugin validation at loadtime of the plugin instead of at runtime. This also makes the code calling the plugins cleaner and easier to read. Issue-ID: MULTICLOUD-557 Change-Id: Ice2bcc9b850d7c0e1707dcc42132c63dd77472a7 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-05-23Update broker responses to match spec and SOKiran Kamineni3-27/+63
The broker responses need to match the spec and what SO expects as responses. CREATE_COMPLETE instead of CREATED in both POST and GET DELETE now returns a response body GET by name is now supported Name is an alias for vf_module_id which is expected to be provided as an attribute in sdnc_directives in the original POST request Issue-ID: MULTICLOUD-645 Change-Id: Ifeca755a07298d0a858cbe9e80f9ce654d6d21b8 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-05-22Minor change to instance responseKiran Kamineni3-96/+117
Minor change to instance response. Now it includes the full request parameters in the response. Issue-ID: MULTICLOUD-649 Change-Id: Ia4a7e479f842dd580bcfb13aa91dc0b0a456cf25 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-05-15Move config to app and connect to instanceKiran Kamineni3-0/+1172
Move config instantiation to app and connect it to the instance to allow updates and so on. Issue-ID: MULTICLOUD-464 Change-Id: Ic994ef78a6e0d2db5e695e33b7b8a302c74c10da Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-05-15Add find method in instanceKiran Kamineni2-0/+433
Add a find method to get instances based on rbname, version and profile. If only rbname is provided, all instances based on that resource bundle are returned. If only rbname and version are provided, all instances based on that combination are returned. When all three parameters are provided, a single instance that matches them is returned. Issue-ID: MULTICLOUD-613 Change-Id: If63e844c77829211b807ce6cd7c11dad247751fc Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-05-02Create kubeconfig files in kubeconfig dirKiran Kamineni4-12/+82
The connectivity api should allow the creation of kubeconfig files in the kubeconfig dir. Issue-ID: MULTICLOUD-292 Change-Id: I5ecc92622648c6c90b71ffad433a132e191cf4b3 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-04-19Move configuration into config filesKiran Kamineni3-13/+9
Move k8splugin configuration into config files instead of using environment variables. Issue-ID: MULTICLOUD-579 Change-Id: I7b76d5a14d24f002a8db484097a31fb5e908b6f8 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-04-16Replace Kind with GroupVersionKindKiran Kamineni4-164/+265
Kind is not unique to track resources in Kubernetes GroupVersionKind is unique. We are just using that to track our data. It is abstracted behind a couple of new types for templates and resources. This change makes a lot of the old kind based operations redundant and simplified. Issue-ID: MULTICLOUD-573 Change-Id: I8f4ded2ba6a0821a8fbd679dc99ce3a44d805524 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-04-16Rename plugin reference interfaceKiran Kamineni1-7/+8
Rename the plugin interface to something more relevant. KubernetesResource will be used to describe resources for creation. Issue-ID: MULTICLOUD-557 Change-Id: I2fff5363b897b968e95b26257d8f26509fb567fd Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-04-10Add support for generic pluginKiran Kamineni1-4/+128
Add support for generic kinds We are currently using a known map to find the group version resource for a kind. Issue-ID: MULTICLOUD-350 Change-Id: I5a64f73760b73cf92b9a3fab8c22ad54e0a5f84f Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-04-10Export kubernetesClientKiran Kamineni3-12/+12
Export kubernetesClient. There are situations where this will need to be accessed in the plugins and we need the definition to be exported for that. Issue-ID: MULTICLOUD-350 Change-Id: I9eee03ea77e390effd33ed96cbbc25dc4cd09cdd Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-04-04Use consistent naming for Name and VersionKiran Kamineni1-1/+1
Definition Name and Definition Version are now using the consistent naming similar to the Profile and instance structure. Name becomes RBName Version becomes RBVersion Issue-ID: MULTICLOUD-350 Change-Id: Ifc329d4979a06cb017c6f9d916c227c696b664e0 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-04-03Refactor instance codeKiran Kamineni5-288/+613
Issue-ID: MULTICLOUD-350 Change-Id: I2574d94e4ebada1e138913b2a03549dd90906d7b Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-04-02Merge "Make profile key explicit"Victor Morales2-4/+4
2019-04-01Remove build tagsKiran Kamineni2-4/+0
Remove build tags as this is causing issues where mock plugins need to be loaded into files that do unit testing as well. Full integration testing is being done in the CSIT. Issue-ID: MULTICLOUD-559 Change-Id: Icd147dac80d16a6fb8f33048c76d4083158cecd2 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-03-29Make profile key explicitKiran Kamineni2-4/+4
Using profilename instead of name in the db key protects it from getting overwritten by anything else that might use name as a key. Using explicit key names makes sure that we don't have to add bson structure tags in the code. Issue-ID: MULTICLOUD-558 Change-Id: I9bd6f757496af22d8662b0d114f0ef7d33a5784a Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-03-26Update definition and profile to latest specKiran Kamineni2-23/+26
Bringing all the definition and profile code upto the latest spec. Integrated the end to end instance code changes that were made. P9: Added updated plugin.sh with updated uri paths based on spec Issue-ID: MULTICLOUD-291 Change-Id: Id6e3c6bc2cd02cfb7005e203ccf03e0793b97e95 Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-03-25Fix namespace creationRitu Sood1-4/+1
Namespace is being created by k8splugin if it doesn't exist. This is done before other resources are created in kubernetes. This patch removes check that failed if namespace didn't exist Change-Id: I8c5b2409ad1cf77d5f529f601870fcf87e8e8760 Signed-off-by: Ritu Sood <ritu.sood@intel.com> Issue-ID: MULTICLOUD-462
2019-03-19Bring in all the other helper codeKiran Kamineni2-24/+141
Bring in all the helper functions added for end to end integration. This allows the api level upload of helm charts, profiles and also instantiation of said helm charts. P3: Plugin index is based on lowercase kind name whereas the map contains the correct case for kind. Convert to lower case before loading the plugin. Changes after rebasing on the new folder structure. Rebasing over the new folder structure P8: Add unit tests for Resolve function Fix the integration tests for createvnf I had to add a huge blob of base64 encoded data based on the profile and sample helm chart to test the flow. P12: Update the integration test with the rb_profile_id parameter Issue-ID: MULTICLOUD-291 Change-Id: If04c41cb185074989ab6c96557958140c43e456d Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
2019-01-25Use a standard Go project layoutVictor Morales4-0/+409
This project wasn't following some Standard Go Project Layout guidelines(https://github.com/golang-standards/project-layout). This change pretends to organize the source code and following those guidelines. Change-Id: I61085ac20f28069cede013f83034bed06892d87c Signed-off-by: Victor Morales <victor.morales@intel.com> Issue-ID: MULTICLOUD-301