Skip to content

Commit d74b6da

Browse files
authored
Merge pull request #6507 from ritzdevp/rs/logfix
JSON Logging support for Karmada Aggregated API Server
2 parents c693ff8 + c9efbe2 commit d74b6da

File tree

3 files changed

+26
-11
lines changed

3 files changed

+26
-11
lines changed

artifacts/deploy/karmada-aggregated-apiserver.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ spec:
4747
- --audit-log-maxage=0
4848
- --audit-log-maxbackup=0
4949
- --tls-min-version=VersionTLS13
50+
- --logging-format=json
5051
- --bind-address=$(POD_IP)
5152
resources:
5253
requests:

cmd/aggregated-apiserver/app/aggregated-apiserver.go

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,12 @@ import (
2121

2222
"github.com/spf13/cobra"
2323
cliflag "k8s.io/component-base/cli/flag"
24+
"k8s.io/component-base/logs"
25+
logsv1 "k8s.io/component-base/logs/api/v1"
2426
"k8s.io/component-base/term"
2527

2628
"github.com/karmada-io/karmada/cmd/aggregated-apiserver/app/options"
29+
"github.com/karmada-io/karmada/pkg/features"
2730
"github.com/karmada-io/karmada/pkg/sharedcli"
2831
"github.com/karmada-io/karmada/pkg/sharedcli/klogflag"
2932
"github.com/karmada-io/karmada/pkg/util/names"
@@ -33,12 +36,30 @@ import (
3336
// NewAggregatedApiserverCommand creates a *cobra.Command object with default parameters
3437
func NewAggregatedApiserverCommand(ctx context.Context) *cobra.Command {
3538
opts := options.NewOptions()
39+
logConfig := logsv1.NewLoggingConfiguration()
40+
fss := cliflag.NamedFlagSets{}
41+
42+
// Set klog flags
43+
logsFlagSet := fss.FlagSet("logs")
44+
logs.AddFlags(logsFlagSet, logs.SkipLoggingConfigurationFlags())
45+
logsv1.AddFlags(logConfig, logsFlagSet)
46+
klogflag.Add(logsFlagSet)
47+
48+
genericFlagSet := fss.FlagSet("generic")
49+
opts.AddFlags(genericFlagSet)
3650

3751
cmd := &cobra.Command{
3852
Use: names.KarmadaAggregatedAPIServerComponentName,
3953
Long: `The karmada-aggregated-apiserver starts an aggregated server.
4054
It is responsible for registering the Cluster API and provides the ability to aggregate APIs,
4155
allowing users to access member clusters from the control plane directly.`,
56+
PersistentPreRunE: func(_ *cobra.Command, _ []string) error {
57+
if err := logsv1.ValidateAndApply(logConfig, features.FeatureGate); err != nil {
58+
return err
59+
}
60+
logs.InitLogs()
61+
return nil
62+
},
4263
RunE: func(_ *cobra.Command, _ []string) error {
4364
if err := opts.Complete(); err != nil {
4465
return err
@@ -53,15 +74,6 @@ allowing users to access member clusters from the control plane directly.`,
5374
},
5475
}
5576

56-
fss := cliflag.NamedFlagSets{}
57-
58-
genericFlagSet := fss.FlagSet("generic")
59-
opts.AddFlags(genericFlagSet)
60-
61-
// Set klog flags
62-
logsFlagSet := fss.FlagSet("logs")
63-
klogflag.Add(logsFlagSet)
64-
6577
cmd.AddCommand(sharedcommand.NewCmdVersion(names.KarmadaAggregatedAPIServerComponentName))
6678
cmd.Flags().AddFlagSet(genericFlagSet)
6779
cmd.Flags().AddFlagSet(logsFlagSet)

cmd/aggregated-apiserver/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.NewAggregatedApiserverCommand(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)