1
0
mirror of https://github.com/coreos/prometheus-operator.git synced 2026-02-05 06:45:27 +01:00

Merge pull request #7966 from nutmos/refactor-kuma-sd

Chore: Refactor KumaSD
This commit is contained in:
Nutmos
2025-10-02 14:22:21 +07:00
committed by GitHub
parent f4a46fe1a5
commit 15a6fc950a
9 changed files with 205 additions and 22 deletions

View File

@@ -626,6 +626,9 @@ func testScrapeConfigCRDValidations(t *testing.T) {
t.Run("OpenStackSD", func(t *testing.T) {
runScrapeConfigCRDValidation(t, OpenStackSDTestCases)
})
t.Run("KumaSD", func(t *testing.T) {
runScrapeConfigCRDValidation(t, KumaSDTestCases)
})
t.Run("ScalewaySD", func(t *testing.T) {
runScrapeConfigCRDValidation(t, ScalewaySDTestCases)
})
@@ -3221,6 +3224,170 @@ var OpenStackSDTestCases = []scrapeCRDTestCase{
},
}
var KumaSDTestCases = []scrapeCRDTestCase{
{
name: "Valid KumaSDConfig - Required Fields",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{
Server: "http://kuma-control-plane.example.com",
},
},
},
expectedError: false,
},
{
name: "Invalid - Required Fields Not Specified",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{},
},
},
expectedError: true,
},
{
name: "Invalid Server schema",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{
Server: "ftp://example.com",
},
},
},
expectedError: true,
},
{
name: "Invalid empty Server",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{
Server: "",
},
},
},
expectedError: true,
},
{
name: "Valid ClientID specified",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{
Server: "http://example.com",
ClientID: ptr.To("valid-client-id"),
},
},
},
expectedError: false,
},
{
name: "Invalid empty ClientID",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{
Server: "http://example.com",
ClientID: ptr.To(""),
},
},
},
expectedError: true,
},
{
name: "Valid RefreshInterval",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{
Server: "http://example.com",
RefreshInterval: ptr.To(monitoringv1.Duration("60s")),
},
},
},
expectedError: false,
},
{
name: "Invalid RefreshInterval",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{
Server: "http://example.com",
RefreshInterval: ptr.To(monitoringv1.Duration("60g")),
},
},
},
expectedError: true,
},
{
name: "Invalid FetchTimeout",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{
Server: "http://example.com",
FetchTimeout: ptr.To(monitoringv1.Duration("60g")),
},
},
},
expectedError: true,
},
{
name: "Valid FetchTimeout",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{
Server: "http://example.com",
FetchTimeout: ptr.To(monitoringv1.Duration("60s")),
},
},
},
expectedError: false,
},
{
name: "FollowRedirects True",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{
Server: "http://example.com",
FollowRedirects: ptr.To(true),
},
},
},
expectedError: false,
},
{
name: "FollowRedirects False",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{
Server: "http://example.com",
FollowRedirects: ptr.To(false),
},
},
},
expectedError: false,
},
{
name: "EnableHTTP2 True",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{
Server: "http://example.com",
EnableHTTP2: ptr.To(true),
},
},
},
expectedError: false,
},
{
name: "EnableHTTP2 False",
scrapeConfigSpec: monitoringv1alpha1.ScrapeConfigSpec{
KumaSDConfigs: []monitoringv1alpha1.KumaSDConfig{
{
Server: "http://example.com",
EnableHTTP2: ptr.To(false),
},
},
},
expectedError: false,
},
}
var ScalewaySDTestCases = []scrapeCRDTestCase{
{
name: "Valid Project ID",