Skip to content

Commit 2187af7

Browse files
committed
Add different Deployment Flag Options
1 parent 3c66f9a commit 2187af7

File tree

1 file changed

+52
-29
lines changed

1 file changed

+52
-29
lines changed

internal/mode/static/telemetry/collector.go

Lines changed: 52 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"errors"
66
"fmt"
77
"runtime"
8-
"strconv"
98

109
"github.com/spf13/pflag"
1110
appsv1 "k8s.io/api/apps/v1"
@@ -49,6 +48,7 @@ type ProjectMetadata struct {
4948
Version string
5049
}
5150

51+
// Option 1: list off each Flag and its value
5252
//type DeploymentFlagOptions struct {
5353
// GatewayClass string
5454
// GatewayCtlrName string
@@ -66,18 +66,35 @@ type ProjectMetadata struct {
6666
// Plus bool
6767
//}
6868

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+
//}
7383

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
8198
}
8299

83100
// Data is telemetry data.
@@ -88,10 +105,10 @@ type Data struct {
88105
Arch string
89106
DeploymentID string
90107
ImageSource string
108+
DeploymentFlagOptions DeploymentFlagOptions
91109
NGFResourceCounts NGFResourceCounts
92110
NodeCount int
93111
NGFReplicaCount int
94-
DeploymentFlagOptions DeploymentFlagOptions
95112
}
96113

97114
// DataCollectorConfig holds configuration parameters for DataCollectorImpl.
@@ -298,22 +315,30 @@ func CollectClusterID(ctx context.Context, k8sClient client.Reader) (string, err
298315
}
299316

300317
func collectDeploymentFlagOptions(flags *pflag.FlagSet) DeploymentFlagOptions {
318+
//deploymentFlagOptions := DeploymentFlagOptions{
319+
// NonBooleanFlagKeys: []string{},
320+
// NonBooleanFlagValues: []string{},
321+
// BooleanFlagKeys: []string{},
322+
// BooleanFlagValues: []bool{},
323+
//}
324+
301325
deploymentFlagOptions := DeploymentFlagOptions{
302-
NonBooleanFlags: []NonBooleanFlag{},
303-
BooleanFlags: []BooleanFlag{},
326+
FlagKeys: []string{},
327+
FlagValues: []string{},
304328
}
305-
flags.Visit(
329+
flags.VisitAll(
306330
func(flag *pflag.Flag) {
331+
deploymentFlagOptions.FlagKeys = append(deploymentFlagOptions.FlagKeys, flag.Name)
307332
switch flag.Value.Type() {
308333
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())
317342

318343
default:
319344
var val string
@@ -322,11 +347,9 @@ func collectDeploymentFlagOptions(flags *pflag.FlagSet) DeploymentFlagOptions {
322347
} else {
323348
val = "user-defined"
324349
}
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)
330353
}
331354
},
332355
)

0 commit comments

Comments
 (0)