@@ -17,7 +17,6 @@ import (
17
17
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
18
18
"k8s.io/apimachinery/pkg/labels"
19
19
"k8s.io/apimachinery/pkg/util/wait"
20
- "k8s.io/cli-runtime/pkg/genericclioptions"
21
20
"k8s.io/client-go/kubernetes"
22
21
"k8s.io/kubectl/pkg/util/i18n"
23
22
"k8s.io/kubectl/pkg/util/templates"
@@ -32,8 +31,6 @@ import (
32
31
)
33
32
34
33
var (
35
- configFlags * genericclioptions.ConfigFlags
36
-
37
34
blobUpload string
38
35
debug bool
39
36
duration time.Duration
@@ -111,7 +108,7 @@ var createCapture = &cobra.Command{
111
108
Short : "Create a Retina Capture" ,
112
109
Example : createExample ,
113
110
RunE : func (* cobra.Command , []string ) error {
114
- kubeConfig , err := configFlags .ToRESTConfig ()
111
+ kubeConfig , err := opts .ToRESTConfig ()
115
112
if err != nil {
116
113
return errors .Wrap (err , "failed to compose k8s rest config" )
117
114
}
@@ -134,10 +131,10 @@ var createCapture = &cobra.Command{
134
131
if nowait {
135
132
retinacmd .Logger .Info ("Please manually delete all capture jobs" )
136
133
if capture .Spec .OutputConfiguration .BlobUpload != nil {
137
- retinacmd .Logger .Info ("Please manually delete capture secret" , zap .String ("namespace" , namespace ), zap .String ("secret name" , * capture .Spec .OutputConfiguration .BlobUpload ))
134
+ retinacmd .Logger .Info ("Please manually delete capture secret" , zap .String ("namespace" , * opts . Namespace ), zap .String ("secret name" , * capture .Spec .OutputConfiguration .BlobUpload ))
138
135
}
139
136
if capture .Spec .OutputConfiguration .S3Upload != nil && capture .Spec .OutputConfiguration .S3Upload .SecretName != "" {
140
- retinacmd .Logger .Info ("Please manually delete capture secret" , zap .String ("namespace" , namespace ), zap .String ("secret name" , capture .Spec .OutputConfiguration .S3Upload .SecretName ))
137
+ retinacmd .Logger .Info ("Please manually delete capture secret" , zap .String ("namespace" , * opts . Namespace ), zap .String ("secret name" , capture .Spec .OutputConfiguration .S3Upload .SecretName ))
141
138
}
142
139
printCaptureResult (jobsCreated )
143
140
return nil
@@ -154,19 +151,19 @@ var createCapture = &cobra.Command{
154
151
retinacmd .Logger .Info ("Deleting jobs as all jobs are completed" )
155
152
jobsFailedToDelete := deleteJobs (kubeClient , jobsCreated )
156
153
if len (jobsFailedToDelete ) != 0 {
157
- retinacmd .Logger .Info ("Please manually delete capture jobs failed to delete" , zap .String ("namespace" , namespace ), zap .String ("job list" , strings .Join (jobsFailedToDelete , "," )))
154
+ retinacmd .Logger .Info ("Please manually delete capture jobs failed to delete" , zap .String ("namespace" , * opts . Namespace ), zap .String ("job list" , strings .Join (jobsFailedToDelete , "," )))
158
155
}
159
156
160
157
err = deleteSecret (kubeClient , capture .Spec .OutputConfiguration .BlobUpload )
161
158
if err != nil {
162
159
retinacmd .Logger .Error ("Failed to delete capture secret, please manually delete it" ,
163
- zap .String ("namespace" , namespace ), zap .String ("secret name" , * capture .Spec .OutputConfiguration .BlobUpload ), zap .Error (err ))
160
+ zap .String ("namespace" , * opts . Namespace ), zap .String ("secret name" , * capture .Spec .OutputConfiguration .BlobUpload ), zap .Error (err ))
164
161
}
165
162
166
163
err = deleteSecret (kubeClient , & capture .Spec .OutputConfiguration .S3Upload .SecretName )
167
164
if err != nil {
168
165
retinacmd .Logger .Error ("Failed to delete capture secret, please manually delete it" ,
169
- zap .String ("namespace" , namespace ),
166
+ zap .String ("namespace" , * opts . Namespace ),
170
167
zap .String ("secret name" , capture .Spec .OutputConfiguration .S3Upload .SecretName ),
171
168
zap .Error (err ),
172
169
)
@@ -180,7 +177,7 @@ var createCapture = &cobra.Command{
180
177
181
178
retinacmd .Logger .Info ("Not all job are completed in the given time" )
182
179
retinacmd .Logger .Info ("Please manually delete the Capture" )
183
- return getCaptureAndPrintCaptureResult (kubeClient , capture .Name , namespace )
180
+ return getCaptureAndPrintCaptureResult (kubeClient , capture .Name , * opts . Namespace )
184
181
},
185
182
}
186
183
@@ -199,7 +196,7 @@ func createSecretFromBlobUpload(kubeClient kubernetes.Interface, blobUpload, cap
199
196
captureConstants .CaptureOutputLocationBlobUploadSecretKey : []byte (blobUpload ),
200
197
},
201
198
}
202
- secret , err := kubeClient .CoreV1 ().Secrets (namespace ).Create (context .TODO (), secret , metav1.CreateOptions {})
199
+ secret , err := kubeClient .CoreV1 ().Secrets (* opts . Namespace ).Create (context .TODO (), secret , metav1.CreateOptions {})
203
200
if err != nil {
204
201
return "" , err
205
202
}
@@ -218,7 +215,7 @@ func createSecretFromS3Upload(kubeClient kubernetes.Interface, s3AccessKeyID, s3
218
215
captureConstants .CaptureOutputLocationS3UploadSecretAccessKey : []byte (s3SecretAccessKey ),
219
216
},
220
217
}
221
- secret , err := kubeClient .CoreV1 ().Secrets (namespace ).Create (context .TODO (), secret , metav1.CreateOptions {})
218
+ secret , err := kubeClient .CoreV1 ().Secrets (* opts . Namespace ).Create (context .TODO (), secret , metav1.CreateOptions {})
222
219
if err != nil {
223
220
return "" , fmt .Errorf ("failed to create s3 upload secret: %w" , err )
224
221
}
@@ -230,14 +227,14 @@ func deleteSecret(kubeClient kubernetes.Interface, secretName *string) error {
230
227
return nil
231
228
}
232
229
233
- return kubeClient .CoreV1 ().Secrets (namespace ).Delete (context .TODO (), * secretName , metav1.DeleteOptions {})
230
+ return kubeClient .CoreV1 ().Secrets (* opts . Namespace ).Delete (context .TODO (), * secretName , metav1.DeleteOptions {}) //nolint:wrapcheck //internal return
234
231
}
235
232
236
233
func createCaptureF (kubeClient kubernetes.Interface ) (* retinav1alpha1.Capture , error ) {
237
234
capture := & retinav1alpha1.Capture {
238
235
ObjectMeta : metav1.ObjectMeta {
239
- Name : name ,
240
- Namespace : namespace ,
236
+ Name : * opts . Name ,
237
+ Namespace : * opts . Namespace ,
241
238
},
242
239
Spec : retinav1alpha1.CaptureSpec {
243
240
CaptureConfiguration : retinav1alpha1.CaptureConfiguration {
@@ -322,15 +319,15 @@ func createCaptureF(kubeClient kubernetes.Interface) (*retinav1alpha1.Capture, e
322
319
323
320
if len (blobUpload ) != 0 {
324
321
// Mount blob url as secret onto the capture pod for security concern if blob url is not empty.
325
- secretName , err := createSecretFromBlobUpload (kubeClient , blobUpload , name )
322
+ secretName , err := createSecretFromBlobUpload (kubeClient , blobUpload , * opts . Name )
326
323
if err != nil {
327
324
return nil , err
328
325
}
329
326
capture .Spec .OutputConfiguration .BlobUpload = & secretName
330
327
}
331
328
332
329
if s3Bucket != "" {
333
- secretName , err := createSecretFromS3Upload (kubeClient , s3AccessKeyID , s3SecretAccessKey , name )
330
+ secretName , err := createSecretFromS3Upload (kubeClient , s3AccessKeyID , s3SecretAccessKey , * opts . Name )
334
331
if err != nil {
335
332
return nil , fmt .Errorf ("failed to create s3 upload secret: %w" , err )
336
333
}
@@ -379,12 +376,12 @@ func createJobs(kubeClient kubernetes.Interface, capture *retinav1alpha1.Capture
379
376
380
377
jobsCreated := []batchv1.Job {}
381
378
for _ , job := range jobs {
382
- jobCreated , err := kubeClient .BatchV1 ().Jobs (namespace ).Create (context .TODO (), job , metav1.CreateOptions {})
379
+ jobCreated , err := kubeClient .BatchV1 ().Jobs (* opts . Namespace ).Create (context .TODO (), job , metav1.CreateOptions {})
383
380
if err != nil {
384
381
return nil , err
385
382
}
386
383
jobsCreated = append (jobsCreated , * jobCreated )
387
- retinacmd .Logger .Info ("Packet capture job is created" , zap .String ("namespace" , namespace ), zap .String ("capture job" , jobCreated .Name ))
384
+ retinacmd .Logger .Info ("Packet capture job is created" , zap .String ("namespace" , * opts . Namespace ), zap .String ("capture job" , jobCreated .Name ))
388
385
}
389
386
return jobsCreated , nil
390
387
}
@@ -428,7 +425,7 @@ func waitUntilJobsComplete(kubeClient kubernetes.Interface, jobs []batchv1.Job)
428
425
429
426
if len (jobsIncompleted ) != 0 {
430
427
retinacmd .Logger .Info ("Not all jobs are completed" ,
431
- zap .String ("namespace" , namespace ),
428
+ zap .String ("namespace" , * opts . Namespace ),
432
429
zap .String ("Completed jobs" , strings .Join (jobsCompleted , "," )),
433
430
zap .String ("Uncompleted packet capture jobs" , strings .Join (jobsIncompleted , "," )),
434
431
)
0 commit comments