Skip to content

Commit

Permalink
Minor changes
Browse files Browse the repository at this point in the history
  • Loading branch information
ridaz committed Dec 14, 2021
1 parent 0499f3a commit c016fc0
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 25 deletions.
10 changes: 6 additions & 4 deletions vdoctl/cmd/configure_matrix.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ const (
CompatMatrixConfigMAp = "compat-matrix-config"
LocalFilepath = "Local filepath"
WebURL = "Web URL"
DefaultConfig = "default"
UserConfig = "user"
)

// matrixConfigureCmd represents the compat command
Expand Down Expand Up @@ -75,7 +77,7 @@ var matrixConfigureCmd = &cobra.Command{
cobra.CheckErr(err)
}

err = CreateConfigMap(filePath, K8sClient, ctx, flag)
err = CreateConfigMap(filePath, K8sClient, ctx, flag, UserConfig)
if err != nil {
cobra.CheckErr(err)
}
Expand All @@ -88,7 +90,7 @@ func init() {
configureCmd.AddCommand(matrixConfigureCmd)
}

func CreateConfigMap(filepath string, client runtimeclient.Client, ctx context.Context, flag utils.ValidationFlags) error {
func CreateConfigMap(filepath string, client runtimeclient.Client, ctx context.Context, flag utils.ValidationFlags, configFlag string) error {

configMapKey := types.NamespacedName{
Namespace: VdoCurrentNamespace,
Expand All @@ -97,13 +99,13 @@ func CreateConfigMap(filepath string, client runtimeclient.Client, ctx context.C
var data map[string]string

if flag == utils.IsURL {
data = map[string]string{"versionConfigURL": filepath, "auto-upgrade": "disabled"}
data = map[string]string{"versionConfigURL": filepath, "auto-upgrade": "disabled", "configured-by": configFlag}
} else {
fileBytes, err := vdoClient.GenerateYamlFromFilePath(filepath)
if err != nil {
cobra.CheckErr(fmt.Sprintf("unable to read the matrix from %s", filepath))
}
data = map[string]string{"versionConfigContent": string(fileBytes), "auto-upgrade": "disabled"}
data = map[string]string{"versionConfigContent": string(fileBytes), "auto-upgrade": "disabled", "configured-by": configFlag}
}

configMapObj := metav1.ObjectMeta{Name: configMapKey.Name, Namespace: configMapKey.Namespace}
Expand Down
36 changes: 16 additions & 20 deletions vdoctl/cmd/drivers.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ import (
"context"
"errors"
"fmt"
"github.com/fatih/color"
"k8s.io/apimachinery/pkg/types"
"os"
"regexp"
"strings"

Expand Down Expand Up @@ -60,7 +60,6 @@ const (
vdoConfigName = "vdo-config"
secretType = "kubernetes.io/basic-auth"
ClusterDistribution = "OpenShift"
defaultMatrixPath = "https://github.com/vmware-tanzu/vsphere-kubernetes-drivers-operator/releases/download/{VERSION}/compatibility.yaml"
)

// driversCmd represents the drivers command
Expand All @@ -75,28 +74,35 @@ var driversCmd = &cobra.Command{
// Check the vdoDeployment Namespace and confirm if VDO operator is running in the env
getVdoNamespace(ctx)

var isConfigRequired bool
configKey := types.NamespacedName{
Namespace: VdoCurrentNamespace,
Name: CompatMatrixConfigMap,
}
cm := v1.ConfigMap{}

_ = K8sClient.Get(ctx, configKey, &cm)
if len(cm.Data) == 0 {
isConfigRequired = true
color.Yellow("VDO will use the default compatibility matrix to determine the versions. If you wish to configure compatibility matrix please run 'vdoctl configure compatibility matrix'")
configFlag := cm.Data["configured-by"]

if !strings.EqualFold(configFlag, UserConfig) {
isConfigRequired := utils.PromptGetInput("Compatibility matrix is not configured. VDO will use the default compatibility matrix. Do you want to configure compatibility matrix? (Y/N) ", errors.New("invalid input"), utils.IsString)
if strings.EqualFold(isConfigRequired, "Y") {
os.Exit(0)
} else {
cm.Data["configured-by"] = DefaultConfig
err := K8sClient.Update(ctx, &cm, &client.UpdateOptions{})
if err != nil {
cobra.CheckErr(fmt.Sprintf("Error received in updating config Map %s", err))
}
}
}

err, deployment := IsVDODeployed(ctx)
err, _ := IsVDODeployed(ctx)
if err != nil {
if apierrors.IsNotFound(err) {
fmt.Println(VDO_NOT_DEPLOYED)
return
} else {
if !isConfigRequired {
cobra.CheckErr(err)
}
cobra.CheckErr(err)
}
}

Expand Down Expand Up @@ -133,16 +139,6 @@ var driversCmd = &cobra.Command{

isCPIRequired := utils.PromptGetInput("Do you want to configure CloudProvider? (Y/N)", errors.New("invalid input"), utils.IsString)

// Configure compatibility matrix , if not configured
if isConfigRequired {
vdoVersion := getVdoVersion(deployment)
currentMatrixPath := strings.Replace(defaultMatrixPath, "{VERSION}", vdoVersion, 1)
err = CreateConfigMap(currentMatrixPath, K8sClient, ctx, utils.IsURL)
if err != nil {
cobra.CheckErr(err)
}
}

if strings.EqualFold(isCPIRequired, "Y") {
fmt.Printf("Please provide the vcenter IP for configuring CloudProvider \n")

Expand Down
2 changes: 1 addition & 1 deletion vdoctl/cmd/status.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ func IsVDODeployed(ctx context.Context) (error, *v12.Deployment) {
ns := types.NamespacedName{Namespace: VdoCurrentNamespace, Name: VdoDeploymentName}
err := K8sClient.Get(ctx, ns, deployment)
if deployment.Status.Replicas != deployment.Status.AvailableReplicas {
return fmt.Errorf("not enough replicas of VDO"), deployment
return fmt.Errorf("not enough replicas of VDO"), nil
}
return err, deployment
}
Expand Down

0 comments on commit c016fc0

Please sign in to comment.