                                       ^ClientBuilder clientbuilder (ClientBuilder/kubeconfig kubeconfig)]
                                   (.build clientbuilder))
                                 (ApiClient.))
-        ; Reset to a more sane timeout from the default 10 seconds.
-        http-client-with-readtimeout (-> api-client .getHttpClient .newBuilder (.readTimeout 120 TimeUnit/SECONDS) .build)
+        http-client-with-readtimeout (-> api-client
+                                         .getHttpClient
+                                         .newBuilder
+                                         (.readTimeout
+                                           read-timeout-seconds
+                                           TimeUnit/SECONDS)
+                                         .build)
         _ (.setHttpClient api-client http-client-with-readtimeout)]
     (when base-path
       (.setBasePath api-client base-path))

           name
           namespace
           node-blocklist-labels
           scan-frequency-seconds
           state
           state-locked?

      a bearer token for authenticating with kubernetes
    - bearer-token-refresh-seconds: interval to refresh the bearer token
    - If we have a configuration file set, then we can select the context out of that kubeconfig file with kubeconfig-context"
  [^String config-file
   base-path
   ^String use-google-service-account?
   bearer-token-refresh-seconds
   verifying-ssl
   ^String ca-cert
   ^String ca-cert-path
   kubeconfig-context
   read-timeout-seconds]
  {:pre [(not (and ca-cert ca-cert-path))]}
  (log/info "API Client config file" config-file)
  (let [^ApiClient api-client (if (some? config-file)
