Skip to content

Commit 96e3cc4

Browse files
committed
fix: ArgoCD CLI diff shows installationID annotations (argoproj#22409)
Signed-off-by: yang.xiao <[email protected]>
1 parent 73495d0 commit 96e3cc4

File tree

2 files changed

+88
-0
lines changed

2 files changed

+88
-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

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
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+
kubeClient := fake.NewClientset(&corev1.ConfigMap{
21+
ObjectMeta: metav1.ObjectMeta{
22+
Name: common.ArgoCDConfigMapName,
23+
Namespace: testNamespace,
24+
Labels: map[string]string{
25+
"app.kubernetes.io/part-of": "argocd",
26+
},
27+
},
28+
Data: data,
29+
}, &corev1.Secret{
30+
ObjectMeta: metav1.ObjectMeta{
31+
Name: "argocd-secret",
32+
Namespace: testNamespace,
33+
},
34+
Data: map[string][]byte{
35+
"admin.password": []byte("test"),
36+
"server.secretkey": []byte("test"),
37+
},
38+
})
39+
settingsManager := settings.NewSettingsManager(context.Background(), kubeClient, testNamespace)
40+
return kubeClient, settingsManager
41+
}
42+
43+
func TestSettingsServer(t *testing.T) {
44+
newServer := func(data map[string]string) *Server {
45+
_, settingsMgr := fixtures(data)
46+
return NewServer(settingsMgr, nil, nil, false, false, false)
47+
}
48+
49+
t.Run("TestGetInstallationID", func(t *testing.T) {
50+
settingsServer := newServer(map[string]string{
51+
"installationID": "1234567890",
52+
})
53+
resp, err := settingsServer.Get(t.Context(), nil)
54+
require.NoError(t, err)
55+
assert.Equal(t, "1234567890", resp.InstallationID)
56+
})
57+
58+
t.Run("TestGetInstallationIDNotSet", func(t *testing.T) {
59+
settingsServer := newServer(map[string]string{})
60+
resp, err := settingsServer.Get(t.Context(), nil)
61+
require.NoError(t, err)
62+
assert.Empty(t, resp.InstallationID)
63+
})
64+
65+
t.Run("TestGetTrackingMethod", func(t *testing.T) {
66+
settingsServer := newServer(map[string]string{
67+
"application.resourceTrackingMethod": "annotation+label",
68+
})
69+
resp, err := settingsServer.Get(t.Context(), nil)
70+
require.NoError(t, err)
71+
assert.Equal(t, "annotation+label", resp.TrackingMethod)
72+
})
73+
74+
t.Run("TestGetAppLabelKey", func(t *testing.T) {
75+
settingsServer := newServer(map[string]string{
76+
"application.instanceLabelKey": "instance",
77+
})
78+
resp, err := settingsServer.Get(t.Context(), nil)
79+
require.NoError(t, err)
80+
assert.Equal(t, "instance", resp.AppLabelKey)
81+
})
82+
}

0 commit comments

Comments
 (0)