1
1
package main
2
2
3
3
import (
4
+ log "github.com/sirupsen/logrus"
5
+ "go.uber.org/automaxprocs/maxprocs"
4
6
"os"
5
7
"path/filepath"
6
8
7
9
"github.com/spf13/cobra"
8
10
9
- _ "go.uber.org/automaxprocs"
10
-
11
11
appcontroller "github.com/argoproj/argo-cd/v2/cmd/argocd-application-controller/commands"
12
12
applicationset "github.com/argoproj/argo-cd/v2/cmd/argocd-applicationset-controller/commands"
13
13
cmpserver "github.com/argoproj/argo-cd/v2/cmd/argocd-cmp-server/commands"
@@ -31,6 +31,8 @@ func main() {
31
31
if val := os .Getenv (binaryNameEnv ); val != "" {
32
32
binaryName = val
33
33
}
34
+ setAutoMaxProcs (binaryName )
35
+
34
36
switch binaryName {
35
37
case "argocd" , "argocd-linux-amd64" , "argocd-darwin-amd64" , "argocd-windows-amd64.exe" :
36
38
command = cli .NewCommand ()
@@ -60,3 +62,21 @@ func main() {
60
62
os .Exit (1 )
61
63
}
62
64
}
65
+
66
+ // setAutoMaxProcs sets the GOMAXPROCS value based on the binary name.
67
+ // It suppresses logs for CLI binaries and logs the setting for services.
68
+ func setAutoMaxProcs (binaryName string ) {
69
+ isCLI := binaryName == "argocd" ||
70
+ binaryName == "argocd-linux-amd64" ||
71
+ binaryName == "argocd-darwin-amd64" ||
72
+ binaryName == "argocd-windows-amd64.exe"
73
+
74
+ if isCLI {
75
+ _ , _ = maxprocs .Set () // Intentionally ignore errors for CLI binaries
76
+ } else {
77
+ _ , err := maxprocs .Set (maxprocs .Logger (log .Debugf ))
78
+ if err != nil {
79
+ log .Infof ("Error setting GOMAXPROCS: %v" , err )
80
+ }
81
+ }
82
+ }
0 commit comments