@@ -57,6 +57,10 @@ func createStaticModeCommand() *cobra.Command {
57
57
leaderElectionLockNameFlag = "leader-election-lock-name"
58
58
plusFlag = "nginx-plus"
59
59
gwAPIExperimentalFlag = "gateway-api-experimental-features"
60
+ usageReportSecretFlag = "usage-report-secret"
61
+ usageReportServerURLFlag = "usage-report-server-url"
62
+ usageReportSkipVerifyFlag = "usage-report-skip-verify"
63
+ usageReportClusterNameFlag = "usage-report-cluster-name"
60
64
)
61
65
62
66
// flag values
@@ -95,9 +99,17 @@ func createStaticModeCommand() *cobra.Command {
95
99
value : "nginx-gateway-leader-election-lock" ,
96
100
}
97
101
98
- plus bool
99
-
100
102
gwExperimentalFeatures bool
103
+
104
+ plus bool
105
+ usageReportSkipVerify bool
106
+ usageReportClusterName = stringValidatingValue {
107
+ validator : validateQualifiedName ,
108
+ }
109
+ usageReportSecretName = namespacedNameValue {}
110
+ usageReportServerURL = stringValidatingValue {
111
+ validator : validateURL ,
112
+ }
101
113
)
102
114
103
115
cmd := & cobra.Command {
@@ -144,6 +156,20 @@ func createStaticModeCommand() *cobra.Command {
144
156
gwNsName = & gateway .value
145
157
}
146
158
159
+ var usageReportConfig * config.UsageReportConfig
160
+ if cmd .Flags ().Changed (usageReportSecretFlag ) {
161
+ if ! plus {
162
+ return errors .New ("usage-report arguments are only valid if using nginx-plus" )
163
+ }
164
+
165
+ usageReportConfig = & config.UsageReportConfig {
166
+ SecretNsName : usageReportSecretName .value ,
167
+ ServerURL : usageReportServerURL .value ,
168
+ ClusterDisplayName : usageReportClusterName .value ,
169
+ InsecureSkipVerify : usageReportSkipVerify ,
170
+ }
171
+ }
172
+
147
173
conf := config.Config {
148
174
GatewayCtlrName : gatewayCtlrName .value ,
149
175
ConfigName : configName .String (),
@@ -167,11 +193,12 @@ func createStaticModeCommand() *cobra.Command {
167
193
Port : metricsListenPort .value ,
168
194
Secure : metricsSecure ,
169
195
},
170
- LeaderElection : config.LeaderElection {
196
+ LeaderElection : config.LeaderElectionConfig {
171
197
Enabled : ! disableLeaderElection ,
172
198
LockName : leaderElectionLockName .String (),
173
199
Identity : podName ,
174
200
},
201
+ UsageReportConfig : usageReportConfig ,
175
202
Plus : plus ,
176
203
TelemetryReportPeriod : period ,
177
204
Version : version ,
@@ -297,6 +324,33 @@ func createStaticModeCommand() *cobra.Command {
297
324
"Requires the Gateway APIs installed from the experimental channel." ,
298
325
)
299
326
327
+ cmd .Flags ().Var (
328
+ & usageReportSecretName ,
329
+ usageReportSecretFlag ,
330
+ "The namespace/name of the Secret containing the credentials for NGINX Plus usage reporting." ,
331
+ )
332
+
333
+ cmd .Flags ().Var (
334
+ & usageReportServerURL ,
335
+ usageReportServerURLFlag ,
336
+ "The base server URL of the NGINX Plus usage reporting server." ,
337
+ )
338
+
339
+ cmd .MarkFlagsRequiredTogether (usageReportSecretFlag , usageReportServerURLFlag )
340
+
341
+ cmd .Flags ().Var (
342
+ & usageReportClusterName ,
343
+ usageReportClusterNameFlag ,
344
+ "The display name of the Kubernetes cluster in the NGINX Plus usage reporting server." ,
345
+ )
346
+
347
+ cmd .Flags ().BoolVar (
348
+ & usageReportSkipVerify ,
349
+ usageReportSkipVerifyFlag ,
350
+ false ,
351
+ "Disable client verification of the NGINX Plus usage reporting server certificate." ,
352
+ )
353
+
300
354
return cmd
301
355
}
302
356
0 commit comments