From 20a96e934529118651e2b70fb618f0e579b81fb3 Mon Sep 17 00:00:00 2001 From: Yuan Tang Date: Mon, 17 Jul 2023 09:17:07 -0400 Subject: [PATCH 1/4] chore: Print in-cluster svr addr disabled warning during ArgoDB initialization Signed-off-by: Yuan Tang --- util/db/cluster.go | 4 +--- util/db/db.go | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/util/db/cluster.go b/util/db/cluster.go index b046e3d1010b9..edb2a7fe644d6 100644 --- a/util/db/cluster.go +++ b/util/db/cluster.go @@ -74,11 +74,9 @@ func (db *db) ListClusters(ctx context.Context) (*appv1.ClusterList, error) { continue } if cluster.Server == appv1.KubernetesInternalAPIServerAddr { - if inClusterEnabled { + if settings.InClusterEnabled { hasInClusterCredentials = true clusterList.Items = append(clusterList.Items, *cluster) - } else { - log.Warnf("failed to add cluster %q to cluster list: in-cluster server address is disabled in Argo CD settings", cluster.Name) } } else { clusterList.Items = append(clusterList.Items, *cluster) diff --git a/util/db/db.go b/util/db/db.go index 05ae38e75bb84..370fd1beea91a 100644 --- a/util/db/db.go +++ b/util/db/db.go @@ -4,9 +4,11 @@ import ( "context" "strings" + log "github.com/sirupsen/logrus" v1 "k8s.io/api/core/v1" "k8s.io/client-go/kubernetes" + "github.com/argoproj/argo-cd/v2/common" appv1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" "github.com/argoproj/argo-cd/v2/util/settings" ) @@ -93,11 +95,34 @@ type db struct { // NewDB returns a new instance of the argo database func NewDB(namespace string, settingsMgr *settings.SettingsManager, kubeclientset kubernetes.Interface) ArgoDB { - return &db{ + dbInstance := db{ settingsMgr: settingsMgr, ns: namespace, kubeclientset: kubeclientset, } + clusterSecrets, err := dbInstance.listSecretsByType(common.LabelValueSecretTypeCluster) + if err != nil { + log.WithError(err).Errorln("could not list secrets by type") + return &dbInstance + } + dbSettings, err := dbInstance.settingsMgr.GetSettings() + if err != nil { + log.WithError(err).Errorln("could not get DB settings") + return &dbInstance + } + for _, clusterSecret := range clusterSecrets { + cluster, err := secretToCluster(clusterSecret) + if err != nil { + log.Errorf("could not unmarshal cluster secret %s", clusterSecret.Name) + continue + } + if cluster.Server == appv1.KubernetesInternalAPIServerAddr { + if !dbSettings.InClusterEnabled { + log.Warnf("cluster %q uses in-cluster server address but it's disabled in Argo CD settings", cluster.Name) + } + } + } + return &dbInstance } func (db *db) getSecret(name string, cache map[string]*v1.Secret) (*v1.Secret, error) { From 152f52262636d71b8c0de462753b317f9c05c03c Mon Sep 17 00:00:00 2001 From: Yuan Tang Date: Mon, 17 Jul 2023 09:18:45 -0400 Subject: [PATCH 2/4] fix: undo a change Signed-off-by: Yuan Tang --- util/db/cluster.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/db/cluster.go b/util/db/cluster.go index edb2a7fe644d6..df1644e0dbbb9 100644 --- a/util/db/cluster.go +++ b/util/db/cluster.go @@ -74,7 +74,7 @@ func (db *db) ListClusters(ctx context.Context) (*appv1.ClusterList, error) { continue } if cluster.Server == appv1.KubernetesInternalAPIServerAddr { - if settings.InClusterEnabled { + if inClusterEnabled { hasInClusterCredentials = true clusterList.Items = append(clusterList.Items, *cluster) } From 0c00084d6c8a005e100e633453372dcad8a250da Mon Sep 17 00:00:00 2001 From: Yuan Tang Date: Mon, 17 Jul 2023 10:14:59 -0400 Subject: [PATCH 3/4] chore: move to a function Signed-off-by: Yuan Tang --- util/db/db.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/util/db/db.go b/util/db/db.go index 370fd1beea91a..b4463594050be 100644 --- a/util/db/db.go +++ b/util/db/db.go @@ -100,15 +100,18 @@ func NewDB(namespace string, settingsMgr *settings.SettingsManager, kubeclientse ns: namespace, kubeclientset: kubeclientset, } - clusterSecrets, err := dbInstance.listSecretsByType(common.LabelValueSecretTypeCluster) + dbInstance.sanityCheck() + return &dbInstance +} + +func (db *db) sanityCheck() { + clusterSecrets, err := db.listSecretsByType(common.LabelValueSecretTypeCluster) if err != nil { log.WithError(err).Errorln("could not list secrets by type") - return &dbInstance } - dbSettings, err := dbInstance.settingsMgr.GetSettings() + dbSettings, err := db.settingsMgr.GetSettings() if err != nil { log.WithError(err).Errorln("could not get DB settings") - return &dbInstance } for _, clusterSecret := range clusterSecrets { cluster, err := secretToCluster(clusterSecret) @@ -122,7 +125,6 @@ func NewDB(namespace string, settingsMgr *settings.SettingsManager, kubeclientse } } } - return &dbInstance } func (db *db) getSecret(name string, cache map[string]*v1.Secret) (*v1.Secret, error) { From 5e16bd97006dcdbe8460800dc8903c4925454c1b Mon Sep 17 00:00:00 2001 From: Yuan Tang Date: Mon, 17 Jul 2023 10:34:48 -0400 Subject: [PATCH 4/4] chore: rename Signed-off-by: Yuan Tang --- util/db/db.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/db/db.go b/util/db/db.go index b4463594050be..f66cf65dc9c47 100644 --- a/util/db/db.go +++ b/util/db/db.go @@ -100,11 +100,11 @@ func NewDB(namespace string, settingsMgr *settings.SettingsManager, kubeclientse ns: namespace, kubeclientset: kubeclientset, } - dbInstance.sanityCheck() + dbInstance.logInClusterWarning() return &dbInstance } -func (db *db) sanityCheck() { +func (db *db) logInClusterWarning() { clusterSecrets, err := db.listSecretsByType(common.LabelValueSecretTypeCluster) if err != nil { log.WithError(err).Errorln("could not list secrets by type")