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