@@ -113,15 +113,15 @@ var (
113
113
kubectl cluster-info dump --namespaces default,kube-system --output-directory=/path/to/cluster-state` ))
114
114
)
115
115
116
- func setupOutputWriter (dir string , defaultWriter io.Writer , filename string ) io.Writer {
116
+ func setupOutputWriter (dir string , defaultWriter io.Writer , filename string , fileExtension string ) io.Writer {
117
117
if len (dir ) == 0 || dir == "-" {
118
118
return defaultWriter
119
119
}
120
- fullFile := path .Join (dir , filename )
120
+ fullFile := path .Join (dir , filename ) + fileExtension
121
121
parent := path .Dir (fullFile )
122
122
cmdutil .CheckErr (os .MkdirAll (parent , 0755 ))
123
123
124
- file , err := os .Create (path . Join ( dir , filename ) )
124
+ file , err := os .Create (fullFile )
125
125
cmdutil .CheckErr (err )
126
126
return file
127
127
}
@@ -171,7 +171,17 @@ func (o *ClusterInfoDumpOptions) Run() error {
171
171
return err
172
172
}
173
173
174
- if err := o .PrintObj (nodes , setupOutputWriter (o .OutputDir , o .Out , "nodes.json" )); err != nil {
174
+ fileExtension := ".txt"
175
+ if o .PrintFlags .OutputFormat != nil {
176
+ switch * o .PrintFlags .OutputFormat {
177
+ case "json" :
178
+ fileExtension = ".json"
179
+ case "yaml" :
180
+ fileExtension = ".yaml"
181
+ }
182
+ }
183
+
184
+ if err := o .PrintObj (nodes , setupOutputWriter (o .OutputDir , o .Out , "nodes" , fileExtension )); err != nil {
175
185
return err
176
186
}
177
187
@@ -199,47 +209,47 @@ func (o *ClusterInfoDumpOptions) Run() error {
199
209
if err != nil {
200
210
return err
201
211
}
202
- if err := o .PrintObj (events , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "events.json" ) )); err != nil {
212
+ if err := o .PrintObj (events , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "events" ), fileExtension )); err != nil {
203
213
return err
204
214
}
205
215
206
216
rcs , err := o .CoreClient .ReplicationControllers (namespace ).List (context .TODO (), metav1.ListOptions {})
207
217
if err != nil {
208
218
return err
209
219
}
210
- if err := o .PrintObj (rcs , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "replication-controllers.json" ) )); err != nil {
220
+ if err := o .PrintObj (rcs , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "replication-controllers" ), fileExtension )); err != nil {
211
221
return err
212
222
}
213
223
214
224
svcs , err := o .CoreClient .Services (namespace ).List (context .TODO (), metav1.ListOptions {})
215
225
if err != nil {
216
226
return err
217
227
}
218
- if err := o .PrintObj (svcs , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "services.json" ) )); err != nil {
228
+ if err := o .PrintObj (svcs , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "services" ), fileExtension )); err != nil {
219
229
return err
220
230
}
221
231
222
232
sets , err := o .AppsClient .DaemonSets (namespace ).List (context .TODO (), metav1.ListOptions {})
223
233
if err != nil {
224
234
return err
225
235
}
226
- if err := o .PrintObj (sets , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "daemonsets.json" ) )); err != nil {
236
+ if err := o .PrintObj (sets , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "daemonsets" ), fileExtension )); err != nil {
227
237
return err
228
238
}
229
239
230
240
deps , err := o .AppsClient .Deployments (namespace ).List (context .TODO (), metav1.ListOptions {})
231
241
if err != nil {
232
242
return err
233
243
}
234
- if err := o .PrintObj (deps , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "deployments.json" ) )); err != nil {
244
+ if err := o .PrintObj (deps , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "deployments" ), fileExtension )); err != nil {
235
245
return err
236
246
}
237
247
238
248
rps , err := o .AppsClient .ReplicaSets (namespace ).List (context .TODO (), metav1.ListOptions {})
239
249
if err != nil {
240
250
return err
241
251
}
242
- if err := o .PrintObj (rps , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "replicasets.json" ) )); err != nil {
252
+ if err := o .PrintObj (rps , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "replicasets" ), fileExtension )); err != nil {
243
253
return err
244
254
}
245
255
@@ -248,7 +258,7 @@ func (o *ClusterInfoDumpOptions) Run() error {
248
258
return err
249
259
}
250
260
251
- if err := o .PrintObj (pods , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "pods.json" ) )); err != nil {
261
+ if err := o .PrintObj (pods , setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , "pods" ), fileExtension )); err != nil {
252
262
return err
253
263
}
254
264
@@ -277,7 +287,7 @@ func (o *ClusterInfoDumpOptions) Run() error {
277
287
for ix := range pods .Items {
278
288
pod := & pods .Items [ix ]
279
289
containers := pod .Spec .Containers
280
- writer := setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , pod .Name , "logs.txt" ) )
290
+ writer := setupOutputWriter (o .OutputDir , o .Out , path .Join (namespace , pod .Name , "logs" ), " .txt" )
281
291
282
292
for i := range containers {
283
293
printContainer (writer , containers [i ], pod )
0 commit comments