Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions internal/telemetry/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,8 @@ func (c *Collector) PolicyCount() map[string]int {
policyCounters["ExternalAuth"]++
case spec.HSTS != nil:
policyCounters["HSTS"]++
case spec.OIDCNative != nil:
policyCounters["OIDCNative"]++
}
}
return policyCounters
Expand Down
5 changes: 5 additions & 0 deletions internal/telemetry/collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ func (c *Collector) Collect(ctx context.Context) {
CORSPolicies: int64(report.CORSCount),
ExternalAuthPolicies: int64(report.ExternalAuthCount),
HSTSPolicies: int64(report.HSTSCount),
OIDCNativePolicies: int64(report.OIDCNativeCount),
WAFBundleSourceTypes: report.WAFBundleSourceTypes,
WAFLogBundleSourceTypes: report.WAFLogBundleSourceTypes,

Expand Down Expand Up @@ -230,6 +231,7 @@ type Report struct {
CORSCount int
ExternalAuthCount int
HSTSCount int
OIDCNativeCount int
WAFBundleSourceTypes []string
WAFLogBundleSourceTypes []string
GlobalConfiguration bool
Expand Down Expand Up @@ -314,6 +316,7 @@ func (c *Collector) BuildReport(ctx context.Context) (Report, error) {
corsCount int
externalAuthCount int
hstsCount int
oidcNativeCount int
)
// Collect Custom Resources (Policies) only if CR enabled at startup.
if c.Config.CustomResourcesEnabled {
Expand All @@ -333,6 +336,7 @@ func (c *Collector) BuildReport(ctx context.Context) (Report, error) {
corsCount = policies["CORS"]
externalAuthCount = policies["ExternalAuth"]
hstsCount = policies["HSTS"]
oidcNativeCount = policies["OIDCNative"]
}

wafBundleSourceTypes := c.WAFBundleSourceTypes()
Expand Down Expand Up @@ -401,6 +405,7 @@ func (c *Collector) BuildReport(ctx context.Context) (Report, error) {
CORSCount: corsCount,
ExternalAuthCount: externalAuthCount,
HSTSCount: hstsCount,
OIDCNativeCount: oidcNativeCount,
GlobalConfiguration: c.Config.GlobalConfiguration,
IngressAnnotations: ingressAnnotations,
AppProtectVersion: appProtectVersion,
Expand Down
24 changes: 24 additions & 0 deletions internal/telemetry/collector_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,13 @@ func TestCollectPolicyCountOnCustomResourcesEnabled(t *testing.T) {
},
want: 1,
},
{
name: "OIDCNativePolicy",
policies: func() []*conf_v1.Policy {
return []*conf_v1.Policy{oidcNativePolicy}
},
want: 1,
},
{
name: "MultiplePolicies",
policies: func() []*conf_v1.Policy {
Expand Down Expand Up @@ -451,6 +458,7 @@ func TestCollectPoliciesReportOnEnabledCustomResources(t *testing.T) {
corsPolicy,
externalAuthPolicy,
hstsPolicy,
oidcNativePolicy,
}
},
CustomResourcesEnabled: true,
Expand Down Expand Up @@ -481,6 +489,7 @@ func TestCollectPoliciesReportOnEnabledCustomResources(t *testing.T) {
CORSPolicies: 1,
ExternalAuthPolicies: 1,
HSTSPolicies: 1,
OIDCNativePolicies: 1,
}

td := telemetry.Data{
Expand Down Expand Up @@ -3001,6 +3010,21 @@ var (
Status: conf_v1.PolicyStatus{},
}

oidcNativePolicy = &conf_v1.Policy{
TypeMeta: metaV1.TypeMeta{
Kind: "Policy",
APIVersion: "k8s.nginx.org/v1",
},
ObjectMeta: metaV1.ObjectMeta{
Name: "oidc-native-policy",
Namespace: "default",
},
Spec: conf_v1.PolicySpec{
OIDCNative: &conf_v1.OIDCNative{},
},
Status: conf_v1.PolicyStatus{},
}

wafBundleSourceN1CPolicy = &conf_v1.Policy{
TypeMeta: metaV1.TypeMeta{
Kind: "Policy",
Expand Down
3 changes: 3 additions & 0 deletions internal/telemetry/data.avdl
Original file line number Diff line number Diff line change
Expand Up @@ -148,5 +148,8 @@ It is the UID of the `kube-system` Namespace. */
/** HSTSPolicies is the number of HSTS policies managed by NGINX Ingress Controller */
long? HSTSPolicies = null;

/** OIDCNativePolicies is the number of OIDC Native policies managed by NGINX Ingress Controller */
long? OIDCNativePolicies = null;

}
}
2 changes: 2 additions & 0 deletions internal/telemetry/exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,4 +156,6 @@ type NICResourceCounts struct {
WAFLogBundleSourceTypes []string
// HSTSPolicies is the number of HSTS policies managed by NGINX Ingress Controller
HSTSPolicies int64
// OIDCNativePolicies is the number of OIDC Native policies managed by NGINX Ingress Controller
OIDCNativePolicies int64
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ func (d *NICResourceCounts) Attributes() []attribute.KeyValue {
attrs = append(attrs, attribute.StringSlice("WAFBundleSourceTypes", d.WAFBundleSourceTypes))
attrs = append(attrs, attribute.StringSlice("WAFLogBundleSourceTypes", d.WAFLogBundleSourceTypes))
attrs = append(attrs, attribute.Int64("HSTSPolicies", d.HSTSPolicies))
attrs = append(attrs, attribute.Int64("OIDCNativePolicies", d.OIDCNativePolicies))

return attrs
}
Expand Down
Loading