Skip to content

Commit 2af742b

Browse files
authored
Merge pull request #6466 from liwang0513/lwang/karmada_search_json_logging
JSON logging support for Karmada Search component
2 parents 22adecf + 2f9eb82 commit 2af742b

File tree

3 files changed

+25
-11
lines changed

3 files changed

+25
-11
lines changed

artifacts/deploy/karmada-search.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ spec:
4848
- --audit-log-maxbackup=0
4949
- --tls-min-version=VersionTLS13
5050
- --bind-address=$(POD_IP)
51+
- --logging-format=json
5152
livenessProbe:
5253
httpGet:
5354
path: /livez

cmd/karmada-search/app/karmada-search.go

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ import (
3434
"k8s.io/client-go/rest"
3535
"k8s.io/client-go/util/flowcontrol"
3636
cliflag "k8s.io/component-base/cli/flag"
37+
"k8s.io/component-base/logs"
38+
logsv1 "k8s.io/component-base/logs/api/v1"
3739
"k8s.io/component-base/term"
3840
cbversion "k8s.io/component-base/version"
3941
"k8s.io/klog/v2"
@@ -42,6 +44,7 @@ import (
4244

4345
"github.com/karmada-io/karmada/cmd/karmada-search/app/options"
4446
searchscheme "github.com/karmada-io/karmada/pkg/apis/search/scheme"
47+
"github.com/karmada-io/karmada/pkg/features"
4548
karmadaclientset "github.com/karmada-io/karmada/pkg/generated/clientset/versioned"
4649
informerfactory "github.com/karmada-io/karmada/pkg/generated/informers/externalversions"
4750
generatedopenapi "github.com/karmada-io/karmada/pkg/generated/openapi"
@@ -62,7 +65,17 @@ type Option func(*runtime.Registry)
6265

6366
// NewKarmadaSearchCommand creates a *cobra.Command object with default parameters
6467
func NewKarmadaSearchCommand(ctx context.Context, registryOptions ...Option) *cobra.Command {
68+
logConfig := logsv1.NewLoggingConfiguration()
69+
fss := cliflag.NamedFlagSets{}
70+
71+
logsFlagSet := fss.FlagSet("logs")
72+
logs.AddFlags(logsFlagSet, logs.SkipLoggingConfigurationFlags())
73+
logsv1.AddFlags(logConfig, logsFlagSet)
74+
klogflag.Add(logsFlagSet)
75+
76+
genericFlagSet := fss.FlagSet("generic")
6577
opts := options.NewOptions()
78+
opts.AddFlags(genericFlagSet)
6679

6780
cmd := &cobra.Command{
6881
Use: names.KarmadaSearchComponentName,
@@ -80,17 +93,15 @@ capabilities such as global search and resource proxy in a multi-cloud environme
8093
}
8194
return nil
8295
},
96+
PersistentPreRunE: func(_ *cobra.Command, _ []string) error {
97+
if err := logsv1.ValidateAndApply(logConfig, features.FeatureGate); err != nil {
98+
return err
99+
}
100+
logs.InitLogs()
101+
return nil
102+
},
83103
}
84104

85-
fss := cliflag.NamedFlagSets{}
86-
87-
genericFlagSet := fss.FlagSet("generic")
88-
opts.AddFlags(genericFlagSet)
89-
90-
// Set klog flags
91-
logsFlagSet := fss.FlagSet("logs")
92-
klogflag.Add(logsFlagSet)
93-
94105
cmd.AddCommand(sharedcommand.NewCmdVersion(names.KarmadaSearchComponentName))
95106
cmd.Flags().AddFlagSet(genericFlagSet)
96107
cmd.Flags().AddFlagSet(logsFlagSet)

cmd/karmada-search/main.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"os"
2121

2222
"k8s.io/component-base/cli"
23+
"k8s.io/component-base/logs"
2324
_ "k8s.io/component-base/logs/json/register" // for JSON log format registration
2425
controllerruntime "sigs.k8s.io/controller-runtime"
2526

@@ -29,6 +30,7 @@ import (
2930
func main() {
3031
ctx := controllerruntime.SetupSignalHandler()
3132
cmd := app.NewKarmadaSearchCommand(ctx)
32-
code := cli.Run(cmd)
33-
os.Exit(code)
33+
exitCode := cli.Run(cmd)
34+
logs.FlushLogs()
35+
os.Exit(exitCode)
3436
}

0 commit comments

Comments
 (0)