Skip to content

Commit

Permalink
Merge pull request #135 from gianlucam76/k8s-version
Browse files Browse the repository at this point in the history
bug: get correct kubernetes version
  • Loading branch information
gianlucam76 committed Nov 4, 2023
2 parents 92ee157 + ef858c3 commit 40ad17c
Showing 1 changed file with 36 additions and 24 deletions.
60 changes: 36 additions & 24 deletions controllers/sveltoscluster_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,41 +138,53 @@ func (r *SveltosClusterReconciler) reconcileNormal(
logger.V(logs.LogInfo).Info(fmt.Sprintf("failed to get scheme: %v", err))
sveltosClusterScope.SveltosCluster.Status.Ready = false
sveltosClusterScope.SveltosCluster.Status.FailureMessage = &errorMessage
return
}

c, err := clusterproxy.GetSveltosKubernetesClient(ctx, logger, r.Client, s,
// Get managed cluster rest.Config
config, err := clusterproxy.GetSveltosKubernetesRestConfig(ctx, logger, r.Client,
sveltosClusterScope.SveltosCluster.Namespace, sveltosClusterScope.SveltosCluster.Name)
if err != nil {
errorMessage := err.Error()
logger.V(logs.LogInfo).Info(fmt.Sprintf("failed to get client: %v", err))
sveltosClusterScope.SveltosCluster.Status.Ready = false
sveltosClusterScope.SveltosCluster.Status.FailureMessage = &errorMessage
} else {
logger.V(logs.LogInfo).Info("got client")
sveltosClusterScope.SveltosCluster.Status.Ready = true
sveltosClusterScope.SveltosCluster.Status.FailureMessage = nil

ns := &corev1.Namespace{}
err = c.Get(context.TODO(), types.NamespacedName{Name: "projectsveltos"}, ns)
if err != nil && !apierrors.IsNotFound(err) {
errorMessage := err.Error()
logger.V(logs.LogInfo).Info(fmt.Sprintf("failed to get projectsveltos namespace: %v", err))
sveltosClusterScope.SveltosCluster.Status.Ready = false
sveltosClusterScope.SveltosCluster.Status.FailureMessage = &errorMessage
}
return
}

currentVersion, err := utils.GetKubernetesVersion(ctx, &r.Config, logger)
if err != nil {
logger.V(logs.LogInfo).Info(fmt.Sprintf("failed to get cluster kubernetes version %v", err))
errorMessage := err.Error()
sveltosClusterScope.SveltosCluster.Status.FailureMessage = &errorMessage
} else {
sveltosClusterScope.SveltosCluster.Status.Version = currentVersion
logger.V(logs.LogDebug).Info(fmt.Sprintf("cluster version %s", currentVersion))
}
// Get managed cluster client
var c client.Client
c, err = client.New(config, client.Options{Scheme: s})
if err != nil {
errorMessage := err.Error()
logger.V(logs.LogInfo).Info(fmt.Sprintf("failed to get client: %v", err))
sveltosClusterScope.SveltosCluster.Status.Ready = false
sveltosClusterScope.SveltosCluster.Status.FailureMessage = &errorMessage
return
}

logger.V(logs.LogInfo).Info("got client")
sveltosClusterScope.SveltosCluster.Status.Ready = true
sveltosClusterScope.SveltosCluster.Status.FailureMessage = nil

ns := &corev1.Namespace{}
err = c.Get(context.TODO(), types.NamespacedName{Name: "projectsveltos"}, ns)
if err != nil && !apierrors.IsNotFound(err) {
errorMessage := err.Error()
logger.V(logs.LogInfo).Info(fmt.Sprintf("failed to get projectsveltos namespace: %v", err))
sveltosClusterScope.SveltosCluster.Status.Ready = false
sveltosClusterScope.SveltosCluster.Status.FailureMessage = &errorMessage
}

logger.V(logs.LogInfo).Info("Reconcile success")
currentVersion, err := utils.GetKubernetesVersion(ctx, config, logger)
if err != nil {
logger.V(logs.LogInfo).Info(fmt.Sprintf("failed to get cluster kubernetes version %v", err))
errorMessage := err.Error()
sveltosClusterScope.SveltosCluster.Status.FailureMessage = &errorMessage
} else {
sveltosClusterScope.SveltosCluster.Status.Version = currentVersion
logger.V(logs.LogDebug).Info(fmt.Sprintf("cluster version %s", currentVersion))
}
}

// SetupWithManager sets up the controller with the Manager.
Expand Down

0 comments on commit 40ad17c

Please sign in to comment.