VictoriaMetrics / operator

Kubernetes operator for Victoria Metrics
Apache License 2.0
422 stars 140 forks source link

Bug: operator crd convert Probe missing fields #883

Closed incubator4 closed 6 months ago

incubator4 commented 6 months ago

For the Probe crd convert. staticConfig relabeling misssing. Suppose I have this Probe.

kind: Probe
apiVersion: monitoring.coreos.com/v1
metadata:
  name: example-com-website
  namespace: monitoring
spec:
  interval: 60s
  module: http_2xx
  prober:
    url: blackbox-exporter.monitoring.svc.cluster.local:19115
  targets:
    staticConfig:
      static:
        - http://example.com
        - https://example.com
      relabelingConfigs:
        - sourceLabels: [__address__]
          targetLabel: __param_target
          replacement: https://$1/  
        - sourceLabels: [ __param_target ]
          targetLabel: instance
        - targetLabel: __address__
          replacement: 127.0.0.1:9115  

I will get VMProbe like this

apiVersion: operator.victoriametrics.com/v1beta1
kind: VMProbe
metadata:
  name: example-com-website
  namespace: monitoring
spec:
  interval: 60s
  module: http_2xx
  targets:
    staticConfig:
      targets:
        - http://example.com
        - https://example.com
  vmProberSpec:
    path: /probe
    url: blackbox-exporter.monitoring.svc.cluster.local:19115

relabeling field missing due to file controllers/converter/apis.go

func ConvertProbe(probe *v1.Probe, conf *config.BaseOperatorConf) *v1beta1vm.VMProbe {
    var (
        ingressTarget *v1beta1vm.ProbeTargetIngress
        staticTargets *v1beta1vm.VMProbeTargetStaticConfig
    )
    if probe.Spec.Targets.Ingress != nil {
        ingressTarget = &v1beta1vm.ProbeTargetIngress{
            Selector: probe.Spec.Targets.Ingress.Selector,
            NamespaceSelector: v1beta1vm.NamespaceSelector{
                Any:        probe.Spec.Targets.Ingress.NamespaceSelector.Any,
                MatchNames: probe.Spec.Targets.Ingress.NamespaceSelector.MatchNames,
            },
            RelabelConfigs: ConvertRelabelConfig(probe.Spec.Targets.Ingress.RelabelConfigs),
        }
    }
    if probe.Spec.Targets.StaticConfig != nil {
        staticTargets = &v1beta1vm.VMProbeTargetStaticConfig{
            Targets: probe.Spec.Targets.StaticConfig.Targets,
            Labels:  probe.Spec.Targets.StaticConfig.Labels,
        }
    }
incubator4 commented 6 months ago

PR had been created by #884

f41gh7 commented 6 months ago

Must be fixed at v0.42.0 release