5
5
"errors"
6
6
"fmt"
7
7
"runtime"
8
- "strconv"
9
8
10
9
"github.com/spf13/pflag"
11
10
appsv1 "k8s.io/api/apps/v1"
@@ -49,6 +48,7 @@ type ProjectMetadata struct {
49
48
Version string
50
49
}
51
50
51
+ // Option 1: list off each Flag and its value
52
52
//type DeploymentFlagOptions struct {
53
53
// GatewayClass string
54
54
// GatewayCtlrName string
@@ -66,18 +66,35 @@ type ProjectMetadata struct {
66
66
// Plus bool
67
67
//}
68
68
69
- type DeploymentFlagOptions struct {
70
- NonBooleanFlags []NonBooleanFlag
71
- BooleanFlags []BooleanFlag
72
- }
69
+ // Option 2 doesn't work with exporter, can't handle slices of structs.
70
+ //type DeploymentFlagOptions struct {
71
+ // NonBooleanFlags []NonBooleanFlag
72
+ // BooleanFlags []BooleanFlag
73
+ //}
74
+ //
75
+ //type BooleanFlag struct {
76
+ // Name string
77
+ // Value bool
78
+ //}
79
+ //type NonBooleanFlag struct {
80
+ // Name string
81
+ // Value string
82
+ //}
73
83
74
- type BooleanFlag struct {
75
- Name string
76
- Value bool
77
- }
78
- type NonBooleanFlag struct {
79
- Name string
80
- Value string
84
+ // Option 2.1: separate Boolean and Non-boolean flags
85
+ //type DeploymentFlagOptions struct {
86
+ // NonBooleanFlagKeys []string
87
+ // NonBooleanFlagValues []string
88
+ //
89
+ // BooleanFlagKeys []string
90
+ // BooleanFlagValues []bool
91
+ //}
92
+
93
+ // Option 3: Don't separate the boolean and non-boolean flags but simply keep the value of the boolean flag
94
+ // as a string, e.g. "true", "false".
95
+ type DeploymentFlagOptions struct {
96
+ FlagKeys []string
97
+ FlagValues []string
81
98
}
82
99
83
100
// Data is telemetry data.
@@ -88,10 +105,10 @@ type Data struct {
88
105
Arch string
89
106
DeploymentID string
90
107
ImageSource string
108
+ DeploymentFlagOptions DeploymentFlagOptions
91
109
NGFResourceCounts NGFResourceCounts
92
110
NodeCount int
93
111
NGFReplicaCount int
94
- DeploymentFlagOptions DeploymentFlagOptions
95
112
}
96
113
97
114
// DataCollectorConfig holds configuration parameters for DataCollectorImpl.
@@ -298,22 +315,30 @@ func CollectClusterID(ctx context.Context, k8sClient client.Reader) (string, err
298
315
}
299
316
300
317
func collectDeploymentFlagOptions (flags * pflag.FlagSet ) DeploymentFlagOptions {
318
+ //deploymentFlagOptions := DeploymentFlagOptions{
319
+ // NonBooleanFlagKeys: []string{},
320
+ // NonBooleanFlagValues: []string{},
321
+ // BooleanFlagKeys: []string{},
322
+ // BooleanFlagValues: []bool{},
323
+ //}
324
+
301
325
deploymentFlagOptions := DeploymentFlagOptions {
302
- NonBooleanFlags : [] NonBooleanFlag {},
303
- BooleanFlags : [] BooleanFlag {},
326
+ FlagKeys : [] string {},
327
+ FlagValues : [] string {},
304
328
}
305
- flags .Visit (
329
+ flags .VisitAll (
306
330
func (flag * pflag.Flag ) {
331
+ deploymentFlagOptions .FlagKeys = append (deploymentFlagOptions .FlagKeys , flag .Name )
307
332
switch flag .Value .Type () {
308
333
case "bool" :
309
- val , err := strconv .ParseBool (flag .Value .String ())
310
- if err != nil {
311
- return
312
- }
313
- deploymentFlagOptions .BooleanFlags = append (deploymentFlagOptions .BooleanFlags , BooleanFlag {
314
- Name : flag . Name ,
315
- Value : val ,
316
- } )
334
+ // val, err := strconv.ParseBool(flag.Value.String())
335
+ // if err != nil {
336
+ // return
337
+ // }
338
+ // deploymentFlagOptions.BooleanFlagKeys = append(deploymentFlagOptions.BooleanFlagKeys, flag.Name)
339
+ //deploymentFlagOptions.BooleanFlagValues = append(deploymentFlagOptions.BooleanFlagValues, val)
340
+
341
+ deploymentFlagOptions . FlagValues = append ( deploymentFlagOptions . FlagValues , flag . Value . String () )
317
342
318
343
default :
319
344
var val string
@@ -322,11 +347,9 @@ func collectDeploymentFlagOptions(flags *pflag.FlagSet) DeploymentFlagOptions {
322
347
} else {
323
348
val = "user-defined"
324
349
}
325
-
326
- deploymentFlagOptions .NonBooleanFlags = append (deploymentFlagOptions .NonBooleanFlags , NonBooleanFlag {
327
- Name : flag .Name ,
328
- Value : val ,
329
- })
350
+ deploymentFlagOptions .FlagValues = append (deploymentFlagOptions .FlagValues , val )
351
+ // deploymentFlagOptions.NonBooleanFlagKeys = append(deploymentFlagOptions.NonBooleanFlagKeys, flag.Name)
352
+ // deploymentFlagOptions.NonBooleanFlagValues = append(deploymentFlagOptions.NonBooleanFlagValues, val)
330
353
}
331
354
},
332
355
)
0 commit comments