UNCLASSIFIED - NO CUI

Failure triggered from controlplane.yaml of IstioOperator if non-string value provided as extraIngressGateway.k8s.resources values

Bug: extraIngressGateways.k8s.resources cpu/mem- causes istio-operator failure if non-string value provided in values.yaml BigBang overrides

Version: istio-controlplan 1.8.4-bb.5

Description: If a cpu value is entered as a numeric value (e.g. 1 instead of 1000m or 1.5 instead of 1500m), the istio-operator fails to complete its startup and logs indicate that the numeric value from the YAML is expected to be a string.

Workarounds:

  • Use mili-cpu values
  • (untested) string-ify the values

Example input for BigBang values.yaml overrides:

        hpaSpec:
          minReplicas: 2
          maxReplicas: 3
        resources:
          limits:
            cpu: 1 ### THIS WILL TRIGGER ISTIO OPERATOR FAILURE
            memory: 3Gi
          requests:
            cpu: 500m  ### THIS WILL WORK FINE
            memory: 1Gi

Example log from pod istio-operator/istio-operator-XXXXX:

2021-08-02T22:10:32.443299Z     error   klog    k8s.io/client-go@v0.19.3/tools/cache/reflector.go:156: 
  Failed to watch *v1alpha1.IstioOperator: failed to list *v1alpha1.IstioOperator: 
  v1alpha1.IstioOperatorList.ListMeta: v1.ListMeta.TypeMeta: Kind: Items: []v1alpha1.IstioOperator: 
  v1alpha1.IstioOperator.Spec: unmarshalerDecoder: json: 
  cannot unmarshal number into Go value of type string, error found in #10 byte of ...|e":true}}}}],"kind":|..., 
  bigger context ...|td-configcheck"]}]}],"rewriteAppHTTPProbe":true}}}}],"kind":"IstioOperatorList","metadata":
  {"continu|...[]
Edited by Tim Martin