Skip to content

Change values to string to solve helm drift detection issues

Ishita Mittal requested to merge ishita/test-drift into main

While working on sylva-projects/sylva-core!2445, it was observed that the deployment of sylva-prometheus-rules unit was failing as helm-controller was detecting a drift here:

Message:               Could not determine release state: unable to determine cluster state: [PrometheusRule/sylva-prometheus-rules/dell-idrac dry-run failed: failed to create typed patch object (sylva-prometheus-rules/dell-idrac; monitoring.coreos.com/v1, Kind=PrometheusRule): errors:
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[1].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[2].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[3].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[4].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[5].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[6].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[7].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[8].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[9].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[10].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[11].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[12].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[13].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[14].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[15].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[16].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[17].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[18].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[19].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[20].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[21].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP DELL iDRAC rules"].rules[22].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}, PrometheusRule/sylva-prometheus-rules/flux dry-run failed: failed to create typed patch object (sylva-prometheus-rules/flux; monitoring.coreos.com/v1, Kind=PrometheusRule): errors:
  .spec.groups[name="Flux rules"].rules[0].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="Flux rules"].rules[1].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="Flux rules"].rules[2].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="Flux rules"].rules[3].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="Flux rules"].rules[4].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}, PrometheusRule/sylva-prometheus-rules/health-alerts dry-run failed: failed to create typed patch object (sylva-prometheus-rules/health-alerts; monitoring.coreos.com/v1, Kind=PrometheusRule): .spec.groups[name="health alerts"].rules[0].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}, PrometheusRule/sylva-prometheus-rules/hp-cpq dry-run failed: failed to create typed patch object (sylva-prometheus-rules/hp-cpq; monitoring.coreos.com/v1, Kind=PrometheusRule): errors:
  .spec.groups[name="SNMP HP CPQ rules"].rules[1].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP HP CPQ rules"].rules[2].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP HP CPQ rules"].rules[3].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP HP CPQ rules"].rules[4].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP HP CPQ rules"].rules[5].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP HP CPQ rules"].rules[6].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP HP CPQ rules"].rules[7].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="SNMP HP CPQ rules"].rules[8].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}, PrometheusRule/sylva-prometheus-rules/longhorn dry-run failed: failed to create typed patch object (sylva-prometheus-rules/longhorn; monitoring.coreos.com/v1, Kind=PrometheusRule): errors:
  .spec.groups[name="Longhorn rules"].rules[0].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="Longhorn rules"].rules[1].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="Longhorn rules"].rules[2].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="Longhorn rules"].rules[3].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="Longhorn rules"].rules[4].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="Longhorn rules"].rules[5].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="Longhorn rules"].rules[6].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="Longhorn rules"].rules[7].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}
  .spec.groups[name="Longhorn rules"].rules[8].labels.sylva_alert: expected string, got &value.valueUnstructured{Value:true}]

So to solve this drift issue, we need to convert some values to string in this chart.

EDIT, @tmmorin: This will also close sylva-projects/sylva-core#1352 (closed)

Edited by Thomas Morin

Merge request reports