Skip to content

Commit 5de88be

Browse files
scrapeconfig: support more discovery mechanisms
1 parent ffd2f66 commit 5de88be

File tree

9 files changed

+3779
-1195
lines changed

9 files changed

+3779
-1195
lines changed

api/operator/v1beta1/vmscrapeconfig_types.go

Lines changed: 159 additions & 97 deletions
Large diffs are not rendered by default.

api/operator/v1beta1/zz_generated.deepcopy.go

Lines changed: 206 additions & 147 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/overlay/crd.yaml

Lines changed: 2528 additions & 518 deletions
Large diffs are not rendered by default.

docs/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ aliases:
2828
* FEATURE: [vmprobe](https://docs.victoriametrics.com/operator/resources/vmprobe/): added `spec.targets.kubernetes` property, that allows to configure probe for `ingress`, `pod` and `service` roles. See [#1078](https://github.com/VictoriaMetrics/operator/issues/1078) and [#1716](https://github.com/VictoriaMetrics/operator/issues/1716).
2929
* FEATURE: [vmscrapeconfig](https://docs.victoriametrics.com/operator/resources/vmscrapeconfig/): added nomad_sd_config support. See [#1809](https://github.com/VictoriaMetrics/operator/issues/1809).
3030
* FEATURE: [vmoperator](https://docs.victoriametrics.com/operator/): support VPA for vmcluster, vtcluster, vlcluster and vmauth. See [#1795](https://github.com/VictoriaMetrics/operator/issues/1795). Thanks to the @dctrwatson for the pull request [#1803](https://github.com/VictoriaMetrics/operator/pull/1803).
31+
* FEATURE: [vmscrapeconfig](https://docs.victoriametrics.com/operator/resources/vmscrapeconfig/): added kuma_sd_config, hetzner_sd_config, eureka_sd_confiig, puppetdb_sd_config and vultr_sd_config support.
3132

3233
* BUGFIX: [vmagent](https://docs.victoriametrics.com/operator/resources/vmagent/): previously the operator requested `nodes/proxy` RBAC permissions even though vmagent did not use them; now this permission is no longer required, reducing the default privilege footprint for users running vmagent. See [#1753](https://github.com/VictoriaMetrics/operator/issues/1753).
3334
* BUGFIX: [vmalert](https://docs.victoriametrics.com/operator/resources/vmalert/): throw error if no notifiers found. See [#1757](https://github.com/VictoriaMetrics/operator/issues/1757).

docs/api.md

Lines changed: 183 additions & 6 deletions
Large diffs are not rendered by default.

internal/controller/operator/converter/v1alpha1/apis_test.go

Lines changed: 42 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -193,21 +193,25 @@ func TestConvertScrapeConfig(t *testing.T) {
193193
HTTPSDConfigs: []vmv1beta1.HTTPSDConfig{
194194
{
195195
URL: "http://test1.com",
196-
Authorization: &vmv1beta1.Authorization{
197-
Type: "Bearer",
198-
Credentials: &corev1.SecretKeySelector{
199-
Key: "token",
196+
HTTPSDOptions: vmv1beta1.HTTPSDOptions{
197+
Authorization: &vmv1beta1.Authorization{
198+
Type: "Bearer",
199+
Credentials: &corev1.SecretKeySelector{
200+
Key: "token",
201+
},
200202
},
201203
},
202204
},
203205
{
204206
URL: "http://test2.com",
205-
TLSConfig: &vmv1beta1.TLSConfig{
206-
CA: vmv1beta1.SecretOrConfigMap{ConfigMap: &corev1.ConfigMapKeySelector{Key: "ca.crt"}},
207-
Cert: vmv1beta1.SecretOrConfigMap{Secret: &corev1.SecretKeySelector{Key: "cert.pem"}},
208-
KeySecret: &corev1.SecretKeySelector{Key: "key"},
209-
ServerName: "test",
210-
InsecureSkipVerify: true,
207+
HTTPSDOptions: vmv1beta1.HTTPSDOptions{
208+
TLSConfig: &vmv1beta1.TLSConfig{
209+
CA: vmv1beta1.SecretOrConfigMap{ConfigMap: &corev1.ConfigMapKeySelector{Key: "ca.crt"}},
210+
Cert: vmv1beta1.SecretOrConfigMap{Secret: &corev1.SecretKeySelector{Key: "cert.pem"}},
211+
KeySecret: &corev1.SecretKeySelector{Key: "key"},
212+
ServerName: "test",
213+
InsecureSkipVerify: true,
214+
},
211215
},
212216
},
213217
},
@@ -295,7 +299,7 @@ func TestConvertScrapeConfig(t *testing.T) {
295299
Name: "f1",
296300
Values: []string{"1"},
297301
}},
298-
Port: ptr.To(80),
302+
Port: ptr.To[int32](80),
299303
}},
300304
},
301305
},
@@ -347,7 +351,7 @@ func TestConvertScrapeConfig(t *testing.T) {
347351
Project: "eu-project",
348352
Zone: vmv1beta1.StringOrArray{"zone-1"},
349353
TagSeparator: ptr.To(""),
350-
Port: ptr.To(80),
354+
Port: ptr.To[int32](80),
351355
}},
352356
},
353357
},
@@ -437,21 +441,25 @@ func TestConvertScrapeConfig(t *testing.T) {
437441
Server: "https://nomad.example.com:4646",
438442
Namespace: ptr.To("default"),
439443
AllowStale: ptr.To(true),
440-
Authorization: &vmv1beta1.Authorization{
441-
Credentials: &corev1.SecretKeySelector{
442-
LocalObjectReference: corev1.LocalObjectReference{Name: "nomad-secret"},
443-
Key: "NOMAD_TOKEN",
444+
HTTPSDOptions: vmv1beta1.HTTPSDOptions{
445+
Authorization: &vmv1beta1.Authorization{
446+
Credentials: &corev1.SecretKeySelector{
447+
LocalObjectReference: corev1.LocalObjectReference{Name: "nomad-secret"},
448+
Key: "NOMAD_TOKEN",
449+
},
444450
},
445451
},
446452
},
447453
{
448454
Server: "https://nomad.example.com:4646",
449455
Namespace: ptr.To("staging"),
450456
AllowStale: ptr.To(true),
451-
Authorization: &vmv1beta1.Authorization{
452-
Credentials: &corev1.SecretKeySelector{
453-
LocalObjectReference: corev1.LocalObjectReference{Name: "nomad-secret"},
454-
Key: "NOMAD_TOKEN",
457+
HTTPSDOptions: vmv1beta1.HTTPSDOptions{
458+
Authorization: &vmv1beta1.Authorization{
459+
Credentials: &corev1.SecretKeySelector{
460+
LocalObjectReference: corev1.LocalObjectReference{Name: "nomad-secret"},
461+
Key: "NOMAD_TOKEN",
462+
},
455463
},
456464
},
457465
},
@@ -515,18 +523,20 @@ func TestConvertScrapeConfig(t *testing.T) {
515523
want: vmv1beta1.VMScrapeConfig{
516524
Spec: vmv1beta1.VMScrapeConfigSpec{
517525
NomadSDConfigs: []vmv1beta1.NomadSDConfig{{
518-
Server: "https://nomad.example.com:4646",
519-
Namespace: ptr.To("prod"),
520-
Region: ptr.To("us-west-1"),
521-
TagSeparator: ptr.To(","),
522-
AllowStale: ptr.To(true),
523-
FollowRedirects: ptr.To(true),
524-
BasicAuth: &vmv1beta1.BasicAuth{
525-
Username: corev1.SecretKeySelector{Key: "user"},
526-
Password: corev1.SecretKeySelector{Key: "pass"},
527-
},
528-
TLSConfig: &vmv1beta1.TLSConfig{
529-
InsecureSkipVerify: true,
526+
Server: "https://nomad.example.com:4646",
527+
Namespace: ptr.To("prod"),
528+
Region: ptr.To("us-west-1"),
529+
TagSeparator: ptr.To(","),
530+
AllowStale: ptr.To(true),
531+
HTTPSDOptions: vmv1beta1.HTTPSDOptions{
532+
FollowRedirects: ptr.To(true),
533+
BasicAuth: &vmv1beta1.BasicAuth{
534+
Username: corev1.SecretKeySelector{Key: "user"},
535+
Password: corev1.SecretKeySelector{Key: "pass"},
536+
},
537+
TLSConfig: &vmv1beta1.TLSConfig{
538+
InsecureSkipVerify: true,
539+
},
530540
},
531541
}},
532542
},

0 commit comments

Comments
 (0)