Description: Spinnaker is unable to download helm-charts from a configured Artifactory source.
Here's the stack trace log from the clouddriver pod -
WARN 1 --- [0.0-7002-exec-5] c.n.s.k.w.e.GenericExceptionHandlers : Handled error in generic exception handler\n\ncom.netflix.spinnaker.kork.web.exceptions.NotFoundException: Failed to download chart names for 'helm-virtual' account\n\tat
Stack trace
com.netflix.spinnaker.kork.web.exceptions.NotFoundException: Failed to download chart names for 'helm-virtual' account at com.netflix.spinnaker.clouddriver.artifacts.helm.HelmArtifactCredentials.getArtifactNames(HelmArtifactCredentials.java:75) ~clouddriver-artifacts.jar:na at com.netflix.spinnaker.clouddriver.controllers.ArtifactController.getNames(ArtifactController.java:73) ~clouddriver-web.jar:na at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~na:na at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~na:na at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~na:na at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~na:na at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~spring-web-5.2.4.RELEASE.jar:5.2.4.RELEASE
This works on another Spinnaker deployment with the same version and Artifactory source.
Steps to Reproduce:
https://spinnaker-gate-url/artifacts/account/gd-helm-virtual/names?type=helm%2Fchart returns
{"timestamp":1608171853207,"status":404,"error":"Not Found","message":"404 ","body":"{"error":"Not Found","message":"Failed to download chart names for 'gd-helm-virtual' account","status":404,"timestamp":"2020-12-17T02:24:13.202+00:00"}","url":"http://spin-clouddriver.spinnaker:7002/artifacts/account/helm-virtual/names?type=helm%2Fchart"}
Additional Details: hal config artifact helm enable was configured and the Artifactory URL doesn't require Basic Auth.
Spinnaker version 1.22.1 halyard 1.40.0
Figured out the problem. The Spinnaker clouddriver pods needed to be patched with the right dnsConfig
kubectl -n spinnaker patch deployment spin-clouddriver --patch '{"spec":{"template":{"spec":{"dnsConfig":{"options":[{"name":"ndots","value":"2"}]}}}}}'