After I added a new Kubernetes cluster to our Spinnaker instance I forgot to disable caching of manifests. This caused all deployments to take around 20 minutes. Without the cache enabled it only took 3 minutes to finish.
If you see that your deploys spends a long time in Force Cache Refresh and Wait For Manifest To Stabilize, then it might be worth you time to try this.
This is even specified in the Halyard command reference.
When true, clouddriver will query manifest status during pipeline executions using live data rather than the cache. This eliminates all time spent in the “force cache refresh” task in pipelines, greatly reducing execution time.
First find the account name:
hal config provider kubernetes account list
The command to turn of the cache is
hal config provider kubernetes account edit [ACCOUNT] --live-manifest-calls=true