Merge "Update EMCO playbook to 21.03.06"
authorRitu Sood <ritu.sood@intel.com>
Thu, 29 Jul 2021 16:33:02 +0000 (16:33 +0000)
committerGerrit Code Review <gerrit@onap.org>
Thu, 29 Jul 2021 16:33:02 +0000 (16:33 +0000)
kud/hosting_providers/containerized/addons/README.md.tmpl
kud/hosting_providers/containerized/addons/values.yaml.tmpl
src/k8splugin/internal/app/config_backend.go
src/k8splugin/internal/app/config_test.go

index 0cef792..4ed4610 100644 (file)
@@ -27,6 +27,12 @@ cloud.
 This deploys the addons listed in the \`Addons\` and
 \`AddonResources\` values in values.yaml.
 
+NOTE: On a single node cluster, the SRIOV addon resource will trigger
+a drain of the worker node.  KubeVirt will prevent the drain from
+completing due to its PodDisruptionBudget.  The workaround is to scale
+down the KubeVirt operator before applying 04-addon-resources-app.yaml
+then scaling it back up after the node is ready again.
+
     \`$ /opt/kud/multi-cluster/${CLUSTER_NAME}/artifacts/emcoctl.sh apply -f 03-addons-app.yaml -v values.yaml\`
     \`$ /opt/kud/multi-cluster/${CLUSTER_NAME}/artifacts/emcoctl.sh apply -f 04-addon-resources-app.yaml -v values.yaml\`
 
index 328c37d..f2a20f8 100644 (file)
@@ -20,6 +20,8 @@ AddonsDeploymentIntentGroup: addons-deployment-intent-group
 AddonsDeploymentIntent: addons-deployment-intent
 AddonsPlacementIntent: addons-placement-intent
 Addons:
+- kubevirt-operator
+- cdi-operator
 - multus-cni
 - ovn4nfv
 - node-feature-discovery
@@ -35,3 +37,5 @@ AddonResourcesPlacementIntent: addon-resources-placement-intent
 AddonResources:
 - ovn4nfv-network
 - sriov-network
+- kubevirt
+- cdi
index e2f802c..8187960 100644 (file)
@@ -353,12 +353,12 @@ func (c ConfigVersionStore) decrementVersion() error {
 // Apply Config
 func applyConfig(instanceID string, p Config, pChannel chan configResourceList, action string) error {
 
-       rbName, rbVersion, profileName, _, err := resolveModelFromInstance(instanceID)
+       rbName, rbVersion, profileName, releaseName, err := resolveModelFromInstance(instanceID)
        if err != nil {
                return pkgerrors.Wrap(err, "Retrieving model info")
        }
        // Get Template and Resolve the template with values
-       crl, err := resolve(rbName, rbVersion, profileName, p)
+       crl, err := resolve(rbName, rbVersion, profileName, p, releaseName)
        if err != nil {
                return pkgerrors.Wrap(err, "Resolve Config")
        }
@@ -436,7 +436,7 @@ func scheduleResources(c chan configResourceList) {
 
 //Resolve returns the path where the helm chart merged with
 //configuration overrides resides.
-var resolve = func(rbName, rbVersion, profileName string, p Config) (configResourceList, error) {
+var resolve = func(rbName, rbVersion, profileName string, p Config, releaseName string) (configResourceList, error) {
 
        var resTemplates []helm.KubernetesResourceTemplate
 
@@ -483,9 +483,17 @@ var resolve = func(rbName, rbVersion, profileName string, p Config) (configResou
                return configResourceList{}, pkgerrors.Wrap(err, "Extracting Template")
        }
 
+       var finalReleaseName string
+
+       if releaseName == "" {
+               finalReleaseName = profile.ReleaseName
+       } else {
+               finalReleaseName = releaseName
+       }
+
        helmClient := helm.NewTemplateClient(profile.KubernetesVersion,
                profile.Namespace,
-               profile.ReleaseName)
+               finalReleaseName)
 
        chartPath := filepath.Join(chartBasePath, t.ChartName)
        resTemplates, _, err = helmClient.GenerateKubernetesArtifacts(chartPath,
index 028895d..f20ef05 100644 (file)
@@ -19,10 +19,11 @@ package app
 
 import (
        "fmt"
-       "github.com/onap/multicloud-k8s/src/k8splugin/internal/db"
        "reflect"
        "strings"
        "testing"
+
+       "github.com/onap/multicloud-k8s/src/k8splugin/internal/db"
        //      pkgerrors "github.com/pkg/errors"
 )
 
@@ -90,7 +91,7 @@ func TestCreateConfig(t *testing.T) {
                        db.Etcd = testCase.mockdb
                        db.DBconn = provideMockModelData(testCase.instanceID, testCase.rbName,
                                testCase.rbVersion, testCase.profileName)
-                       resolve = func(rbName, rbVersion, profileName string, p Config) (configResourceList, error) {
+                       resolve = func(rbName, rbVersion, profileName string, p Config, releaseName string) (configResourceList, error) {
                                return configResourceList{}, nil
                        }
                        impl := NewConfigClient()
@@ -203,7 +204,7 @@ func TestRollbackConfig(t *testing.T) {
                        db.Etcd = testCase.mockdb
                        db.DBconn = provideMockModelData(testCase.instanceID, testCase.rbName,
                                testCase.rbVersion, testCase.profileName)
-                       resolve = func(rbName, rbVersion, profileName string, p Config) (configResourceList, error) {
+                       resolve = func(rbName, rbVersion, profileName string, p Config, releaseName string) (configResourceList, error) {
                                return configResourceList{}, nil
                        }
                        impl := NewConfigClient()