Ritu Sood [Sun, 24 Jan 2021 01:13:31 +0000 (01:13 +0000)]
Merge "Fix the nodeSelector indent and define name"
Konrad Bańka [Wed, 13 Jan 2021 12:39:53 +0000 (13:39 +0100)]
Provide simple v3 chart mock test
Issue-ID: MULTICLOUD-1267
Signed-off-by: Konrad Bańka <k.banka@samsung.com>
Change-Id: Ib05167a6e0e2c69268bcd85c0ae3fa30fdd78e39
Konrad Bańka [Wed, 16 Dec 2020 09:57:29 +0000 (10:57 +0100)]
Rollback helm library to version not failing v3 charts
This change reverts
fef2f1a959341d2abaea6dadaecccc4952c284c9 commit that
updated helm library to a version, that no longer allowed helm v3 charts
by explicitly failing when parsing them. Proper support of helm v3 is
still not implemented in k8splugin, but at least it shouldn't fail on v3
packages that don't implement v3-specific features.
Also apart from revert, go.mod/sum have been also tidied.
Issue-ID: MULTICLOUD-1267
Signed-off-by: Konrad Bańka <k.banka@samsung.com>
Change-Id: I992004d30802134039f0a6aca2d07a42db9c2459
Ritu Sood [Tue, 15 Dec 2020 00:35:33 +0000 (00:35 +0000)]
Merge "MULTICLOUD-1257 updated gui flow"
Eric Multanen [Thu, 10 Dec 2020 00:44:02 +0000 (00:44 +0000)]
Merge "Containerized base installation directory change"
Todd Malsbary [Wed, 2 Dec 2020 21:00:45 +0000 (13:00 -0800)]
Run all addon tests even when one fails
Previously the installer would exit immediately after a failure by one
of the addon tests. Now, record the failure and run subsequent tests,
then exit if any fail.
Issue-ID: MULTICLOUD-1258
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I4fcad9b51b58277344de4fed0e40e87493dc3663
Eric Multanen [Thu, 10 Dec 2020 00:21:49 +0000 (00:21 +0000)]
Merge "Fix broken virtlet image URL"
Eric Multanen [Thu, 10 Dec 2020 00:21:09 +0000 (00:21 +0000)]
Merge "Fix sriov test in baremetal deploy"
Eric Multanen [Thu, 10 Dec 2020 00:19:52 +0000 (00:19 +0000)]
Merge "Remove duplicate dict key"
Eric Multanen [Thu, 10 Dec 2020 00:19:11 +0000 (00:19 +0000)]
Merge "Enable pod security policies"
Todd Malsbary [Thu, 3 Dec 2020 01:31:38 +0000 (17:31 -0800)]
Remove duplicate dict key
Issue-ID: MULTICLOUD-1262
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: Ie83fad2ad8146b3b33d3a3f0438ff7fe1ac4e475
Todd Malsbary [Fri, 20 Nov 2020 23:42:54 +0000 (15:42 -0800)]
Enable pod security policies
The intention with this change is to disable CAP_NET_RAW (which can be
a security vulnerability) for created Pods.
kubespray provides the podsecuritypolicy_enabled variable for enabling
privileged (for kube-system) and restricted (for everyone else)
policies. Enabling this requires binding the KUD_ADDONs to the
privileged policy and specifying the security context correctly for
Pods running in the default namespace.
As of this change, the only difference between the privileged and
restricted security policies is the dropping of CAP_NET_RAW in the
restricted policy. To use the default restricted policy provided with
kubespray, additional changes must be made to the Pods that are run in
the default namespace (such as runing as a non-root user, not
requesting privileged mode, etc.).
Issue-ID: MULTICLOUD-1256
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I7d6add122ad4046f9116ef03a249f5c9da1d7eec
Todd Malsbary [Thu, 3 Dec 2020 00:09:36 +0000 (16:09 -0800)]
Fix QAT addon deploy and test
Note that as mentioned in install_qat.sh, the kernel command line must
include "intel_iommu=on iommu=pt" for the deploy and test to succeed.
The underlying issue is that the playbook was expecting to be run on
the same host it executed on and was looking for files in the wrong
places.
Issue-ID: MULTICLOUD-1261
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I5f59b9147f34f077fcdc63d7fc5f80b56977054c
Todd Malsbary [Thu, 3 Dec 2020 00:09:14 +0000 (16:09 -0800)]
Fix sriov test in baremetal deploy
The test incorrectly checked the node running the test for sriov
feature support. This fix now checks the cluster for it.
Issue-ID: MULTICLOUD-1260
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I869823cc062968c8ac7b9fa037d425244a03799c
Todd Malsbary [Thu, 3 Dec 2020 00:07:28 +0000 (16:07 -0800)]
Fix broken virtlet image URL
Issue-ID: MULTICLOUD-1259
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I92cc722818b9023b4aa29d191cf92e2c319f957b
vikaskumar [Thu, 26 Nov 2020 07:41:45 +0000 (13:11 +0530)]
MULTICLOUD-1257 updated gui flow
Issue-ID: MULTICLOUD-1257
Change-Id: I5c1432c037952abeed6066cb067192076031f9cd
Signed-off-by: vikaskumar <vkumar@aarnanetworks.com>
Le Yao [Thu, 12 Nov 2020 09:24:24 +0000 (09:24 +0000)]
Fix the nodeSelector indent and define name
Deploy the sdewan controller on master node
Change sdewan-contoller-manager to sdewan-crd-controller
Issue-ID: MULTICLOUD-1253
Signed-off-by: Le Yao <le.yao@intel.com>
Change-Id: Ic55744914266278f1c344c10af587d41f4426918
Todd Malsbary [Wed, 21 Oct 2020 16:37:37 +0000 (09:37 -0700)]
Fix CrashLoopBackoff in emco-fluentd Pod
The emco-fluentd pod is stuck in CrashLoopBackOff due to a failure to
resolve the "cluster.local" name. Explicitly set the
fluentd.clusterDomain value to the actual cluster name during helm
install.
Issue-ID: MULTICLOUD-1244
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: Ia6424e7ce8d4544511ad88c478e65fa8c4df0c52
Ritu Sood [Thu, 19 Nov 2020 18:13:07 +0000 (18:13 +0000)]
Merge "Build and deploy sriov module only on supported hosts."
Ritu Sood [Thu, 19 Nov 2020 18:12:34 +0000 (18:12 +0000)]
Merge "Update multus-daemonset.yml to that of multus-cni v3.6 release"
Ritu Sood [Thu, 19 Nov 2020 18:12:18 +0000 (18:12 +0000)]
Merge "Upgrade kubespray from 2.12.6 to 2.14.1"
Ritu Sood [Thu, 19 Nov 2020 18:11:07 +0000 (18:11 +0000)]
Merge "Update images used in onap4k8s and emco helm charts"
Ritu Sood [Thu, 19 Nov 2020 18:09:16 +0000 (18:09 +0000)]
Merge "Use same host in both copy and run of deploy_optane.sh"
Ritu Sood [Thu, 19 Nov 2020 18:08:50 +0000 (18:08 +0000)]
Merge "Ignore 404 when deleting non-existent project in emco.sh"
Ritu Sood [Thu, 19 Nov 2020 18:08:35 +0000 (18:08 +0000)]
Merge "Wait for service to be listening before running tests"
Ritu Sood [Thu, 19 Nov 2020 18:08:24 +0000 (18:08 +0000)]
Merge "Properly escape query string to jq"
Ritu Sood [Thu, 19 Nov 2020 18:08:12 +0000 (18:08 +0000)]
Merge "Move test inside if block to prevent premature exit"
Ritu Sood [Thu, 19 Nov 2020 18:07:37 +0000 (18:07 +0000)]
Merge "Fix typo in deployments/helm/v2/emco/Chart.yaml"
Konrad Bańka [Thu, 12 Nov 2020 08:13:37 +0000 (09:13 +0100)]
Improve early-detection of empty template
Previous empty template detection pattern matched only against templates
resolved to empty-or-whitespace-only files. This change makes it handle
other case of empty yaml correctly, namely, yaml containing comments
only.
Issue-ID: MULTICLOUD-1252
Signed-off-by: Konrad Bańka <k.banka@samsung.com>
Change-Id: I9132e167ec607c8a4a4ca5584141ed043c6ddd4f
Todd Malsbary [Fri, 30 Oct 2020 20:31:04 +0000 (13:31 -0700)]
Update multus-daemonset.yml to that of multus-cni v3.6 release
The only change to the upstream yml is the removal of the
kube-multus-ds-ppc64le DaemonSet and the replacement of
"default-cni-network" with "cni0".
Note also that the v3.6 yml actually uses the v3.4.1 image tag. The
yml now points to a v3.4.1 image with the addition of code to merge
the results from all delegates to support Virtlet.
Issue-ID: MULTICLOUD-1230
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I0e18644a567facfac1fd7dc1c053002b2d906288
Todd Malsbary [Tue, 27 Oct 2020 21:46:29 +0000 (14:46 -0700)]
Upgrade kubespray from 2.12.6 to 2.14.1
- Replace move of ansible.cfg from kubespray distribution to
/etc/ansible with ANSIBLE_CONFIG environment variable. Ansible
modifies ansible.cfg during installation, and the paths in it are
relative.
- kubespray 2.14.1 requires a kubernetes version > 1.16. Use the
default versions of kubernetes and helm provided by kubespray
2.14.1.
- kubespray 2.14.1 replaces helm 2 with helm 3. This removes support
for helm init and helm serve. It is no longer necessary to call
helm init, and the helm serve repository is replaced with file
relative URLs. This also triggered a subsequent update of the
kubernetes-helm ansible module to include the newer helm versions.
- Add "storageType: hostPath" to etcd/values.yaml. Helm deploy of
etcd will fail without this due to nil
PersistentVolume.metadata.labels.type.
- The mitogen module used by kubespray/ansible requires python2 on the
hosts. Use the linear strategy to bypass mitogen and install
python2 on the cluster hosts.
Issue-ID: MULTICLOUD-1230
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I9f50bb4e123fdcacab6b6a97e79cd09fb5c96634
Todd Malsbary [Fri, 23 Oct 2020 23:18:58 +0000 (16:18 -0700)]
Use same host in both copy and run of deploy_optane.sh
NOTE: This is not a complete fix, it is only a workaround so that
installer.sh can succeed when Optane hardware is not present.
Without this, "No such file or directory" is reported during the
"Apply Optane PMEM CSI Daemonset" task of the configure-optane
playbook. This error was observed with kubespray 2.14.1 and not with
2.12.6.
Issue-ID: MULTICLOUD-1234
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I1e23741d704ab117a84b4ed11e2f7ac02f0f2ec2
Todd Malsbary [Thu, 22 Oct 2020 23:57:56 +0000 (16:57 -0700)]
Update images used in onap4k8s and emco helm charts
This was triggered by the failure of plugin_fw.sh when run via the
containerized installer.
The full list of changes is:
- etcd-amd64: 3.2.24 => 3.3.17. Note that 3.4.9 is the latest as of
this commit, but 3.4.9 removed the coreutils necessary to run the
k8s Command (i.e. hostname, seq, ...).
- readiness-check: 2.0.0 => 2.2.2
- mongo: 4.0.8 => 4.4.1
- nfs-provisioner: 1.0.8 => 2.3.0
- filebeat: 5.5.0 => 7.9.3
- multicloud-k8s: 0.5.0 => 0.7.0
- fluentd: 1.10.2-debian-10-r11 => 1.11.4-debian-10-r7
Issue-ID: MULTICLOUD-1245
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: Ic0454086c390f6b24a77fcf2ea0e5d24507fa153
Todd Malsbary [Tue, 20 Oct 2020 22:36:16 +0000 (15:36 -0700)]
Ignore 404 when deleting non-existent project in emco.sh
The delete is run at the start of the test, it is expected that the
resource does not exist.
Issue-ID: MULTICLOUD-1243
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I1b060ec8f17fd4b9b76ed03d8dc3bd7c21756690
Todd Malsbary [Tue, 20 Oct 2020 21:40:37 +0000 (14:40 -0700)]
Wait for service to be listening before running tests
Issue-ID: MULTICLOUD-1242
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I5aa45daf92ebfbee32d154dc17f7d2afd72bf255
Todd Malsbary [Tue, 20 Oct 2020 19:20:26 +0000 (12:20 -0700)]
Properly escape query string to jq
Without this change, the '.request.release-name' query causes jq to
get confused by the '-' and fail the test script:
jq: error: name/0 is not defined at <top-level>, line 1:
.request.release-name
jq: 1 compile error
Issue-ID: MULTICLOUD-1241
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I386cd46db8e44c92bc24d8eb8a9e3964d9b87d39
Todd Malsbary [Tue, 20 Oct 2020 18:14:33 +0000 (11:14 -0700)]
Move test inside if block to prevent premature exit
grep returns a non-zero error code if the pattern is not found. This
would cause the topology-manager.sh test to exit prematurely instead
of capturing and logging the error and returning zero as intended.
Issue-ID: MULTICLOUD-1240
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I29c4d30630c0f803325c2ed024d4c0b9e8a0e911
Todd Malsbary [Tue, 20 Oct 2020 16:50:34 +0000 (09:50 -0700)]
Fix typo in deployments/helm/v2/emco/Chart.yaml
Issue-ID: MULTICLOUD-1239
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: Ibf7c7d2a64889b72cdc67a587548fb6a0dac6ba0
Eric Multanen [Fri, 16 Oct 2020 23:27:28 +0000 (23:27 +0000)]
Merge "Update EMCO OpenAPI spec with DCM APIs"
Eric Multanen [Fri, 16 Oct 2020 23:25:49 +0000 (23:25 +0000)]
Merge "Restore commented unit test TestDeleteLogicalCloud"
Eric Multanen [Fri, 16 Oct 2020 23:22:22 +0000 (23:22 +0000)]
Merge "delete should return 404 error for invalid name"
Igor D.C [Thu, 8 Oct 2020 18:44:14 +0000 (18:44 +0000)]
Restore commented unit test TestDeleteLogicalCloud
Restore the previously commented-out unit test TestDeleteLogicalCloud.
That test was disabled due to a failure introduced by interacting with
AppContext for the first time in module/logicalcloud.go and it not
being ready to do so.
This commit restores it and modifies code so dependent mocks can plug
in correctly. This was done in order to keep testing the code that was
previously being tested, not so much to add additional coverage.
Although it would be a significant undertaking, the different types and
interfaces in pkg/module should be redesigned to achieve better
decoupling and thus make unit testing more straightforward.
Issue-ID: MULTICLOUD-1143
Change-Id: I1e6b7bb9111fc6883f0c9cee887329a9e0b27fbd
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Igor D.C [Fri, 7 Aug 2020 23:29:02 +0000 (23:29 +0000)]
Update EMCO OpenAPI spec with DCM APIs
Update emco_apis.yaml with all new API paths provided by DCM and
its /logical-clouds URL prefix. Update schemas and parameters too.
Issue-ID: MULTICLOUD-1143
Change-Id: I9d94cb2954c2f0131ffb8c3061a87a6b6a235cba
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Igor D.C [Thu, 8 Oct 2020 23:50:55 +0000 (23:50 +0000)]
Fix mispelled key name in kubeconfig
Fixes the mispelled "currentcontext" with the right key name
"current-context" which was introduced as a regression with or
before the latest version of the kubeconfig code (probably a bad
search/replace).
This 1-character long bug was preventing the generated kubeconfigs
from being correctly interpreted by kubectl. Thus, kubectl couldn't
set any context of the kubeconfig as the current context.
Observable output before this fix:
$ kubectl get pods
The connection to the server localhost:8080 was refused - did you
specify the right host or port?
Issue-ID: MULTICLOUD-1143
Change-Id: I617d1e20b7be2567729b84d3746b22e4ceaf8b9d
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Ritu Sood [Thu, 24 Sep 2020 20:35:02 +0000 (13:35 -0700)]
Updating the API definition
API definition updated to add
generic placemnent intent under
deployment group
Issue-ID: MULTICLOUD-1096
Signed-off-by: Ritu Sood <ritu.sood@intel.com>
Change-Id: Ida830de0f17038925651bc604440b11547b7320d
Ritu Sood [Thu, 8 Oct 2020 21:29:54 +0000 (21:29 +0000)]
Merge "Add k8splugin releases file for 0.7.0"
Eric Multanen [Fri, 9 Oct 2020 04:37:14 +0000 (21:37 -0700)]
Add k8splugin releases file for 0.7.0
Add k8splugin file for 0.7.0
Issue-ID: MULTICLOUD-1213
Signed-off-by: Eric Multanen <eric.w.multanen@intel.com>
Change-Id: I54d7610f39be4d05e176ff7e2f67bd7594e50677
Ritu Sood [Thu, 8 Oct 2020 21:12:12 +0000 (21:12 +0000)]
Merge "Reduce duplication around DeleteCompositeApp calls"
Eric Multanen [Thu, 8 Oct 2020 20:50:55 +0000 (13:50 -0700)]
Update k8splugin for G release
Update image version of k8splugin to 0.7.0-SNAPSHOT
This will be then be used to create the release image
Issue-ID: MULTICLOUD-1213
Signed-off-by: Eric Multanen <eric.w.multanen@intel.com>
Change-Id: Ice57a61bc98397a2bbb5c313452459b02ec86139
Igor D.C [Thu, 8 Oct 2020 02:54:54 +0000 (02:54 +0000)]
Reduce duplication around DeleteCompositeApp calls
DCM's apply function had a lot of error handling code that cleans up
the AppContext if something goes wrong while adding to AppContext.
Most of that handling was using multiline duplicate code with the only
change being in the log/error strings. This commit attempts to reuse
all that error handling code and make it easier to follow main code.
Issue-ID: MULTICLOUD-1143
Change-Id: I3a35387b1ed46279c1b973dbd852352276ff5cc8
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Ritu Sood [Tue, 6 Oct 2020 21:06:21 +0000 (21:06 +0000)]
Merge "Apply corrections to EMCO v2 helm README"
Igor D.C [Tue, 6 Oct 2020 20:45:19 +0000 (20:45 +0000)]
Apply corrections to EMCO v2 helm README
Mostly just make the identifiers consistent with each other
so copy-paste works without surprises. No more rel- prefix, just emco-.
Additionally suggest a 2nd workaround to the persistentvolumes issue.
Issue-ID: MULTICLOUD-1143
Change-Id: I7ad1d3a4b20f7563226a9d487c388275e56429b5
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Igor D.C [Wed, 30 Sep 2020 17:34:28 +0000 (17:34 +0000)]
Add DCM to Helm deployment folder
Also add DCM to cleanup-emco.sh.
Issue-ID: MULTICLOUD-1143
Change-Id: I2496c1fef2e2588c1c8e750105568afc210d54c3
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Ritu Sood [Mon, 5 Oct 2020 22:47:13 +0000 (22:47 +0000)]
Merge "Remove unused mongo db methods from emco code"
Ritu Sood [Mon, 5 Oct 2020 22:45:38 +0000 (22:45 +0000)]
Merge "Ovnaction and vfw updates for deploy api change"
Ritu Sood [Mon, 5 Oct 2020 22:45:20 +0000 (22:45 +0000)]
Merge "Modify GenericPlacement APIs to include DepIntGrp"
Todd Malsbary [Thu, 1 Oct 2020 21:17:59 +0000 (14:17 -0700)]
Build and deploy sriov module only on supported hosts.
Building on the target host fixes a couple issues:
- In the containerized installer, the container image does not include
the necessary kernel headers to build the module.
- The build and target host must have the same kernel version. There
is no guarantee of this.
The deploy uses NFD, similar to the QAT playbook.
Issue-ID: MULTICLOUD-1228
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I58705b73b8ce6d381b4649d5a20b8644e51e1b13
Eric Multanen [Thu, 1 Oct 2020 05:38:59 +0000 (22:38 -0700)]
Ovnaction and vfw updates for deploy api change
Update the ovnaction controller APIs to support
the api change of including the deployment intent
group in the URL. Also fixup:
- vfw and other test cases to support the change
- updates to emcoctl tool and examples
Issue-ID: MULTICLOUD-1218
Signed-off-by: Eric Multanen <eric.w.multanen@intel.com>
Change-Id: Icadacb5ec6d7c238bb3bf8a44a39c30692ecebee
Rajamohan Raj [Fri, 25 Sep 2020 03:16:40 +0000 (03:16 +0000)]
Modify GenericPlacement APIs to include DepIntGrp
Modify the genericPlacementIntent API such that deploymentIntentGroup
becomes a mandatory parameter.
Issue-ID: MULTICLOUD-1218
Signed-off-by: Rajamohan Raj <rajamohan.raj@intel.com>
Change-Id: I33d2eeac5b60228e9c08921c9347b1b6aa3f8d28
Igor D.C [Fri, 2 Oct 2020 01:40:09 +0000 (01:40 +0000)]
DCM E2E testing fixes
A set of small fixes after discovery during DCM's end-to-end testing:
- properly detect that a cert hasn't been issued yet (don't crash)
- in Monitor, don't pass namespace when querying for CSRs
- fixed incorrect /kubeconfig file encoding from yaml to json
Issue-ID: MULTICLOUD-1143
Change-Id: Ie813e377070b0751f0bfdabac8da50e3288090de
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Ritu Sood [Fri, 2 Oct 2020 23:20:57 +0000 (23:20 +0000)]
Merge "Set name of resources correctly in appcontext"
Ritu Sood [Fri, 2 Oct 2020 23:20:30 +0000 (23:20 +0000)]
Merge "Reimplement Terminate to be compatible with Status"
Eric Multanen [Thu, 1 Oct 2020 23:29:08 +0000 (16:29 -0700)]
Remove unused mongo db methods from emco code
Remove the set of unused (legacy from v1) mongo
db methods so that they are not used in the emco
code base.
Issue-ID: MULTICLOUD-1227
Signed-off-by: Eric Multanen <eric.w.multanen@intel.com>
Change-Id: Ibe94892e5b1d0f33192be7ea3db5c55b3f8cbf60
Igor D.C [Fri, 2 Oct 2020 00:20:09 +0000 (00:20 +0000)]
Set name of resources correctly in appcontext
Previously the DCM K8s resources in appcontext were in the format:
<logical cloud name>+<resource type>
Now they are in the correct format:
<resource name>+<ResourceType>
Issue-ID: MULTICLOUD-1143
Change-Id: I271c70587244921cc2ffb7ad571ad8eb162cb10f
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Igor D.C [Thu, 1 Oct 2020 17:50:20 +0000 (17:50 +0000)]
Reimplement Terminate to be compatible with Status
This also includes modifying Apply and Delete, since there are
strict conditions that need to be met in each, to prevent
Logical Clouds (LCs) from entering a bad state.
Summary of what's being done here:
- When applying:
- set tag 'lccontext' in the LC to the context ID (was already done)
- and let rsync know about the appcontext (grpc) (was already done)
- if tag was already set, check current context /status
- if context /status is actually Terminated, 'lccontext' is set to
new context ID and previous AppContext deleted
- When terminating:
- lets rsync know about the termination request (grpc)
- When deleting:
- checks whether the current context /status is Terminated
- if it is, then it will remove the latest LC context
This particular commit disables the TestDeleteLogicalCloud test
until a known issue behind the test is resolved.
This commit does not leverage the full capacity of the Status
framework, but is sufficient to support all operations. A future
patch will entirely migrate DCM to the Status framework. Until
then, a known issue exists where DCM will forget about context IDs
previously associated to a particular Logical Cloud (only keeps last).
Issue-ID: MULTICLOUD-1143
Change-Id: I7a6034eba543c2a27daa41b7fe6298cb2a85f9ce
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Ritu Sood [Thu, 1 Oct 2020 22:05:42 +0000 (15:05 -0700)]
Adding CSR Approval functionality
Update rsync to be able to approve CSR
Issue-ID: MULTICLOUD-1143
Signed-off-by: Ritu Sood <ritu.sood@intel.com>
Change-Id: I0b2bec3475a3453a2d8fc9c2e87cfc4531b0e2f3
Igor D.C [Thu, 1 Oct 2020 23:44:46 +0000 (23:44 +0000)]
Improve DCM test script: apply, term, kubeconfig
Adds apply and terminate operations, while decoupling them in two
different script branches.
Add kubeconfig test into a third script branch.
Also, $cluster_2_name wasn't defined, so this fixes that.
Issue-ID: MULTICLOUD-1143
Change-Id: I574934078644ec83224bcac74b5b17783330aaaa
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Ritu Sood [Fri, 2 Oct 2020 20:10:22 +0000 (20:10 +0000)]
Merge "Fix rsync retry logic for unreachable cluster"
Eric Multanen [Tue, 22 Sep 2020 18:10:32 +0000 (11:10 -0700)]
Fix rsync retry logic for unreachable cluster
Fix rsync to only retry reaching clusters until the
timeout occurs.
Issue-ID: MULTICLOUD-1226
Signed-off-by: Eric Multanen <eric.w.multanen@intel.com>
Change-Id: I5e8202358cfd8cdd15c9feb4fcbefe2683b7139a
Igor D.C [Wed, 30 Sep 2020 21:30:06 +0000 (21:30 +0000)]
Subtle refactoring in a few functions
In DCM.
Essentially refactored two different areas:
- rename apply/terminate functions in module to clarify what they do
- split gets from getAlls in API code of the 5 DCM resource types
And cleaned up here and there.
Issue-ID: MULTICLOUD-1143
Change-Id: I9b72c77ba34a1febd5df4a339e87968ddc4a7891
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Igor D.C [Thu, 1 Oct 2020 00:18:45 +0000 (00:18 +0000)]
Fix arg mismatch in GetLogicalCloudContext
The previous commits were merged in the wrong order, which caused a bad
3-way merge resulting in the arg mismatch as witnessed below:
k8s/src/dcm/pkg/modulepkg/module/cluster.go:263:57: not enough arguments
in call to lcClient.GetLogicalCloudContext
have (string)
want (string, string)
Makefile:13: recipe for target 'all' failed
make: *** [all] Error 2
The CI merge job doesn't run tests before merging, so this slipped in.
Issue-ID: MULTICLOUD-1143
Change-Id: I0168345af6bac7886cba32d958f241687ab24a81
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Ritu Sood [Wed, 30 Sep 2020 23:48:26 +0000 (23:48 +0000)]
Merge "Implement Kubeconfig endpoint in DCM"
Eric Multanen [Wed, 30 Sep 2020 23:28:04 +0000 (23:28 +0000)]
Merge "Update ResourceBundleState CRD and monitor-deploy"
Eric Multanen [Wed, 30 Sep 2020 23:22:46 +0000 (23:22 +0000)]
Merge "Fix Status API to actually provide instance status"
Igor D.C [Wed, 30 Sep 2020 19:37:51 +0000 (19:37 +0000)]
Update ResourceBundleState CRD and monitor-deploy
Update ResourceBundleState CRD and monitor-deploy.yaml with
csrStatuses.
This was missing from the previous patch implementing CSR support
in Monitor. Depending on how the environment was brought up, attempting
to read the CSR would result in forbidden access.
Issue-ID: MULTICLOUD-1143
Change-Id: I86ffb8df8faa045e57fd553e5784d308e1900ee4
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Ritu Sood [Wed, 30 Sep 2020 17:45:29 +0000 (17:45 +0000)]
Merge "Add DCM to K8s deployment file"
Aditya Sharoff [Thu, 24 Sep 2020 22:45:15 +0000 (15:45 -0700)]
delete should return 404 error for invalid name
Issue-ID: MULTICLOUD-1150
Change-Id: I04c9584e35672b6b40047a67be4d2026002204e1
Signed-off-by: Aditya Sharoff <aditya.sharoff@intel.com>
Igor D.C [Wed, 30 Sep 2020 17:09:28 +0000 (17:09 +0000)]
Add DCM to K8s deployment file
Issue-ID: MULTICLOUD-1143
Change-Id: Iaca9bd6cb3614e0ae825d9231476524ce09db550
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Konrad Bańka [Fri, 25 Sep 2020 14:35:02 +0000 (16:35 +0200)]
Fix Status API to actually provide instance status
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
Igor D.C [Tue, 29 Sep 2020 19:00:37 +0000 (19:00 +0000)]
Use project name provided by API in DCM
DCM apply/terminate code was still using a hardcoded "test-project"
string for the project name that logical clouds should associate to.
This simple patch makes DCM use the project name provided by the API.
It also checks that the project exists before creating a Logical Cloud.
Issue-ID: MULTICLOUD-1143
Change-Id: I05c8a2309ed07a7c96da30bf2461c43abaccc9d5
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Igor D.C [Fri, 25 Sep 2020 05:28:09 +0000 (05:28 +0000)]
Implement Kubeconfig endpoint in DCM
The /kubeconfig API path allows a client to retrieve a kubeconfig
file for a specified cluster reference of a logical cloud.
- includes CA cert, address, user private key and signed cert.
This commit includes the "lazy-loading" implementation of certificate
retrieval per cluster from Rsync (which happens when clients call).
The certificate is read from the cluster status in appcontext.
Thus, Monitor and Rsync need to be configured and running.
Issue-ID: MULTICLOUD-1143
Change-Id: Ie94cd128e14c8a944861eced2bdc886d95fab6ed
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Ritu Sood [Tue, 29 Sep 2020 19:58:19 +0000 (19:58 +0000)]
Merge "Add plugin_fw.sh test for v2 and run as part of installer."
Ritu Sood [Mon, 28 Sep 2020 23:51:43 +0000 (23:51 +0000)]
Merge "Add a couple of sanity checks in DCM"
Igor D.C [Sat, 26 Sep 2020 02:54:02 +0000 (02:54 +0000)]
Request CSR approvals via /subresource level
Make use of the new /subresource level (under a resource) to
request rsync to process approvals (a K8s subresource) for CSRs.
Generic usage of instructions (order, dependency) for consistency.
This also introduces a 'subresources' package in 'appcontext' with
the first member being the approval subresource. Since subresources
aren't necessarily created with yaml, this package will allow
developers to specify what should be the "interface" in appcontext
for each type of subresource when the different services need to
exchange this data (e.g. DCM and rsync).
Issue-ID: MULTICLOUD-1143
Change-Id: I8c85b4ee8c5654036a1c7ebb39d111ba4518b468
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Ritu Sood [Mon, 28 Sep 2020 23:27:04 +0000 (23:27 +0000)]
Merge "Implement rest of Apply operation in DCM"
Ritu Sood [Mon, 28 Sep 2020 23:26:25 +0000 (23:26 +0000)]
Merge "Implement Terminate operation in DCM"
Igor D.C [Fri, 25 Sep 2020 00:15:58 +0000 (00:15 +0000)]
Fix special characters issue in quotas in DCM
Before this patch, any resource quotas, say, with a dot (like
limits.cpu), would not be stored properly in the database and thus
unusable and ignored by DCM logical cloud apply operation.
Issue-ID: MULTICLOUD-1143
Change-Id: I178e66756bc9bb2798427233d15196d0e2559a99
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Igor D.C [Sat, 26 Sep 2020 02:19:38 +0000 (02:19 +0000)]
Implement rest of Apply operation in DCM
"Rest of" meaning the Apply operation now effectively
instantiates logical cloud resources on K8s cluster.
More specifically, this commit now enables:
- DCM calling rsync over gRPC on apply
- The following K8s resources are now being created per cluster:
- namespace, csr, resourcequotas, roles, rolebindings
- Tested-working for multiple clusters simultaneously
- Generating and storing logical cloud user private key in MongoDB
This commit doesn't include any logic to request
or retrieve CSR approvals and signed user certificates.
Issue-ID: MULTICLOUD-1143
Change-Id: I92c4270678d05a5cb531791cef199a7dd79403d3
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Igor D.C [Sat, 26 Sep 2020 01:55:04 +0000 (01:55 +0000)]
Add a couple of sanity checks in DCM
When applying, check whether logical cloud is already applied.
When deleting logical cloud, check if it exists.
Issue-ID: MULTICLOUD-1143
Change-Id: I6aa11d8921db76e3d9e9632f915b55fe7ab8efab
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Igor D.C [Fri, 25 Sep 2020 22:31:11 +0000 (22:31 +0000)]
Implement Terminate operation in DCM
Also makes minor changes to non-terminate code as a side-effect of
supporting the new Terminate operation (such as including tagContext in
the LogicalCloudClient implementation of LogicalCloudManager interface).
These changes are/will also be leveraged by other operations.
Issue-ID: MULTICLOUD-1143
Change-Id: Idbd2ec9f6cf0e5584a0f51cf4c16144db56d9fa0
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Igor D.C [Mon, 31 Aug 2020 22:46:10 +0000 (22:46 +0000)]
Introduce Monitor support for CSR resource
These changes allow the Monitor to also track CSR
(CertificateSigningResource) resources which will make
it possible to know when a certificate has been issued by
the K8s cluster signer. In turn, DCM will be able to read,
store and use that certificate to generate kubeconfigs.
Out-of-tree actions required:
- publish monitor's docker image built from this source
onto emcov2/monitor:latest
Issue-ID: MULTICLOUD-1143
Change-Id: I7facd27bbfe08891151bb3b6a9a19948435e24e4
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Ritu Sood [Fri, 25 Sep 2020 16:36:24 +0000 (16:36 +0000)]
Merge "Enhance error handling and HTTP codes in DCM"
Igor D.C [Thu, 24 Sep 2020 22:01:35 +0000 (22:01 +0000)]
If getAppContextStatus fails, cancel waitForDone
And log error appropriately.
Essentially, add basic error handling and return from waitForDone.
It is possible to trigger this error easily by having an rsync client
wipe out etcd right after issuing an InvokeUninstallApp, as demonstrated
by DCM (before it was adapted to use the new asynchronous rsync).
Issue-ID: MULTICLOUD-1143
Change-Id: Id5c0d8da928738cb3cdc862eaefdb91db2eadf5f
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Igor D.C [Fri, 25 Sep 2020 00:04:58 +0000 (00:04 +0000)]
Enhance error handling and HTTP codes in DCM
This improves error handling between DCM and the database resources and
adds/corrects a lot more HTTP return codes in the API, respectively.
Issue-ID: MULTICLOUD-1143
Change-Id: I3abc8025660e042f4c946f8bbfd280e1eb4c9583
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Ritu Sood [Fri, 25 Sep 2020 02:15:45 +0000 (02:15 +0000)]
Merge "Let instructions exist under /subresource level"
Igor D.C [Thu, 24 Sep 2020 23:37:33 +0000 (23:37 +0000)]
Add default/template config.json for DCM
DCM listening on port 9077 as default.
The IP addresses for MongoDB and etcd are what we get by default
on docker installations of those using emco deployments.
Issue-ID: MULTICLOUD-1143
Change-Id: I9b30b278e3cf4fdb428665986e05c6916000b4e7
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Igor D.C [Mon, 31 Aug 2020 23:00:46 +0000 (23:00 +0000)]
Let instructions exist under /subresource level
Instructions (order/dependency) can now belong to an
app, a resource or a subresource.
Issue-ID: MULTICLOUD-1143
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Change-Id: Iee55c2bbb569de242e66f5a5456ac52025a00f0e
Rajamohan Raj [Mon, 14 Sep 2020 19:47:54 +0000 (19:47 +0000)]
Cleanup tmp resources after instantiation
In this patch,we clean up the tmp files
and directories generated during the
process of instantiation.
They include the tmp dirs with
prefix : /tmp/helm-tmpl and /tmp/k8s-ext
Issue-ID: MULTICLOUD-1206
Signed-off-by: Rajamohan Raj <rajamohan.raj@intel.com>
Change-Id: I02d11bb2f8d920e35aae7343f041a53b1cd3f057
vikaskumar [Thu, 24 Sep 2020 07:37:57 +0000 (13:07 +0530)]
initial commit of emcoui web app
Signed-off-by: vikaskumar <vkumar@aarnanetworks.com>
Change-Id: I78b2f9f4ec3aa0b7a660a21e2ee2d61a3cddadc6
Issue-ID: MULTICLOUD-1225
Todd Malsbary [Tue, 8 Sep 2020 18:31:52 +0000 (11:31 -0700)]
Add plugin_fw.sh test for v2 and run as part of installer.
To deploy to multiple clusters, set the KUD_PLUGIN_FW_CLUSTERS
environment variable to the following format (an array of cluster data
objects):
[
{
"metadata": {
"name": "NAME",
"description": "DESCRIPTION",
"userData1": "USER_DATA_1",
"userData2": "USER_DATA_2"
},
"file": "KUBECONFIG_PATH"
},
{
...
}
]
Issue-ID: MULTICLOUD-1217
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I4c80fbcef1162b441c4dfba4ce2bfd3ac419bc25