Skip to content

Commit 3831985

Browse files
committed
Add support for json log format
1 parent 7716671 commit 3831985

File tree

3 files changed

+50
-2
lines changed

3 files changed

+50
-2
lines changed

docs/book/src/developer/tilt.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,41 @@ kustomize_substitutions:
155155
IBMCLOUD_AUTH_URL: "https://iam.test.cloud.ibm.com"
156156
```
157157

158+
### 4. Configuration to use observability tools
159+
160+
- cluster-api provides support for deploying observability tools, More information about it is available in cluster-api [book](https://cluster-api.sigs.k8s.io/developer/logging#developing-and-testing-logs).
161+
162+
```yaml
163+
default_registry: "gcr.io/you-project-name-here"
164+
deploy_observability:
165+
- promtail
166+
- loki
167+
- grafana
168+
provider_repos:
169+
- ../cluster-api-provider-ibmcloud
170+
enable_providers:
171+
- ibmcloud
172+
- kubeadm-bootstrap
173+
- kubeadm-control-plane
174+
kustomize_substitutions:
175+
IBMCLOUD_API_KEY: "XXXXXXXXXXXXXXXXXX"
176+
PROVIDER_ID_FORMAT: "v2"
177+
EXP_CLUSTER_RESOURCE_SET: "true"
178+
extra_args:
179+
core:
180+
- "--logging-format=json"
181+
- "--v=5"
182+
kubeadm-bootstrap:
183+
- "--v=5"
184+
- "--logging-format=json"
185+
kubeadm-control-plane:
186+
- "--v=5"
187+
- "--logging-format=json"
188+
ibmcloud:
189+
- "--v=5"
190+
- "--logging-format=json"
191+
```
192+
158193
**NOTE**: For information about all the fields that can be used in the `tilt-settings.yaml` file, check them [here](https://cluster-api.sigs.k8s.io/developer/tilt.html#tilt-settings-fields).
159194

160195
## Run Tilt

go.mod

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ require (
3737
k8s.io/apimachinery v0.30.3
3838
k8s.io/cli-runtime v0.30.3
3939
k8s.io/client-go v0.30.3
40+
k8s.io/component-base v0.30.3
4041
k8s.io/klog/v2 v2.120.1
4142
k8s.io/utils v0.0.0-20231127182322-b307cd553661
4243
sigs.k8s.io/cluster-api v1.8.3
@@ -80,6 +81,7 @@ require (
8081
github.com/fsnotify/fsnotify v1.7.0 // indirect
8182
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
8283
github.com/go-logr/stdr v1.2.2 // indirect
84+
github.com/go-logr/zapr v1.3.0 // indirect
8385
github.com/go-openapi/analysis v0.21.5 // indirect
8486
github.com/go-openapi/errors v0.22.0 // indirect
8587
github.com/go-openapi/jsonpointer v0.20.1 // indirect
@@ -162,6 +164,7 @@ require (
162164
go.opentelemetry.io/otel/trace v1.24.0 // indirect
163165
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
164166
go.uber.org/multierr v1.11.0 // indirect
167+
go.uber.org/zap v1.27.0 // indirect
165168
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
166169
golang.org/x/oauth2 v0.21.0 // indirect
167170
golang.org/x/sync v0.8.0 // indirect
@@ -180,7 +183,6 @@ require (
180183
gopkg.in/yaml.v3 v3.0.1 // indirect
181184
k8s.io/apiserver v0.30.3 // indirect
182185
k8s.io/cluster-bootstrap v0.30.3 // indirect
183-
k8s.io/component-base v0.30.3 // indirect
184186
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
185187
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.0 // indirect
186188
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect

main.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ import (
3030
"k8s.io/apimachinery/pkg/runtime"
3131
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3232
cgrecord "k8s.io/client-go/tools/record"
33+
"k8s.io/component-base/logs"
34+
logsv1 "k8s.io/component-base/logs/api/v1"
35+
_ "k8s.io/component-base/logs/json/register"
3336
"k8s.io/klog/v2"
34-
3537
ctrl "sigs.k8s.io/controller-runtime"
3638
"sigs.k8s.io/controller-runtime/pkg/cache"
3739
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -56,6 +58,7 @@ var (
5658
healthAddr string
5759
syncPeriod time.Duration
5860
managerOptions = flags.ManagerOptions{}
61+
logOptions = logs.NewOptions()
5962
webhookPort int
6063
webhookCertDir string
6164

@@ -75,6 +78,9 @@ func init() {
7578
}
7679

7780
func initFlags(fs *pflag.FlagSet) {
81+
82+
logsv1.AddFlags(logOptions, fs)
83+
7884
fs.BoolVar(
7985
&enableLeaderElection,
8086
"leader-elect",
@@ -151,6 +157,11 @@ func main() {
151157
pflag.CommandLine.AddGoFlagSet(flag.CommandLine)
152158
pflag.Parse()
153159

160+
if err := logsv1.ValidateAndApply(logOptions, nil); err != nil {
161+
setupLog.Error(err, "unable to validate and apply log options")
162+
os.Exit(1)
163+
}
164+
154165
ctrl.SetLogger(klog.Background())
155166

156167
// Parse service endpoints.

0 commit comments

Comments
 (0)