Skip to content

Commit 82b957e

Browse files
committed
fix: ArgoCD CLI diff shows installationID annotations (argoproj#22409)
1 parent 73495d0 commit 82b957e

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed

server/settings/settings.go

+6
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@ func (s *Server) Get(ctx context.Context, _ *settingspkg.SettingsQuery) (*settin
8989
return nil, err
9090
}
9191

92+
installationID, err := s.mgr.GetInstallationID()
93+
if err != nil {
94+
return nil, err
95+
}
96+
9297
set := settingspkg.Settings{
9398
URL: argoCDSettings.URL,
9499
AdditionalURLs: argoCDSettings.AdditionalURLs,
@@ -112,6 +117,7 @@ func (s *Server) Get(ctx context.Context, _ *settingspkg.SettingsQuery) (*settin
112117
KustomizeVersions: kustomizeVersions,
113118
UiCssURL: argoCDSettings.UiCssURL,
114119
TrackingMethod: trackingMethod,
120+
InstallationID: installationID,
115121
ExecEnabled: argoCDSettings.ExecEnabled,
116122
AppsInAnyNamespaceEnabled: s.appsInAnyNamespaceEnabled,
117123
ImpersonationEnabled: argoCDSettings.ImpersonationEnabled,

server/settings/settings_test.go

+85
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package settings
2+
3+
import (
4+
"context"
5+
"testing"
6+
7+
"github.com/stretchr/testify/assert"
8+
"github.com/stretchr/testify/require"
9+
corev1 "k8s.io/api/core/v1"
10+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
11+
"k8s.io/client-go/kubernetes/fake"
12+
13+
"github.com/argoproj/argo-cd/v3/common"
14+
"github.com/argoproj/argo-cd/v3/util/settings"
15+
)
16+
17+
const testNamespace = "default"
18+
19+
func fixtures(data map[string]string) (*fake.Clientset, *settings.SettingsManager) {
20+
cm := &corev1.ConfigMap{
21+
ObjectMeta: metav1.ObjectMeta{
22+
Name: common.ArgoCDConfigMapName,
23+
Namespace: "default",
24+
Labels: map[string]string{
25+
"app.kubernetes.io/part-of": "argocd",
26+
},
27+
},
28+
Data: data,
29+
}
30+
secret := &corev1.Secret{
31+
ObjectMeta: metav1.ObjectMeta{
32+
Name: "argocd-secret",
33+
Namespace: testNamespace,
34+
},
35+
Data: map[string][]byte{
36+
"admin.password": []byte("test"),
37+
"server.secretkey": []byte("test"),
38+
},
39+
}
40+
kubeClient := fake.NewClientset(cm, secret)
41+
settingsManager := settings.NewSettingsManager(context.Background(), kubeClient, "default")
42+
43+
return kubeClient, settingsManager
44+
}
45+
46+
func TestSettingsServer(t *testing.T) {
47+
newServer := func(data map[string]string) *Server {
48+
_, settingsMgr := fixtures(data)
49+
return NewServer(settingsMgr, nil, nil, false, false, false)
50+
}
51+
52+
t.Run("TestGetInstallationID", func(t *testing.T) {
53+
settingsServer := newServer(map[string]string{
54+
"installationID": "1234567890",
55+
})
56+
resp, err := settingsServer.Get(t.Context(), nil)
57+
require.NoError(t, err)
58+
assert.Equal(t, "1234567890", resp.InstallationID)
59+
})
60+
61+
t.Run("TestGetInstallationIDNotSet", func(t *testing.T) {
62+
settingsServer := newServer(map[string]string{})
63+
resp, err := settingsServer.Get(t.Context(), nil)
64+
require.NoError(t, err)
65+
assert.Empty(t, resp.InstallationID)
66+
})
67+
68+
t.Run("TestGetTrackingMethod", func(t *testing.T) {
69+
settingsServer := newServer(map[string]string{
70+
"application.resourceTrackingMethod": "annotation+label",
71+
})
72+
resp, err := settingsServer.Get(t.Context(), nil)
73+
require.NoError(t, err)
74+
assert.Equal(t, "annotation+label", resp.TrackingMethod)
75+
})
76+
77+
t.Run("TestGetAppLabelKey", func(t *testing.T) {
78+
settingsServer := newServer(map[string]string{
79+
"application.instanceLabelKey": "instance",
80+
})
81+
resp, err := settingsServer.Get(t.Context(), nil)
82+
require.NoError(t, err)
83+
assert.Equal(t, "instance", resp.AppLabelKey)
84+
})
85+
}

0 commit comments

Comments
 (0)