上QQ阅读APP看书,第一时间看更新
4.1.2 ensureHelmClient
前面处理完Chart路径寻找和下载任务后,就需要初始化Helm Client来准备与Tiller通信。ensureHelmClient函数就是为了完成这个功能而存在的,该函数接收一个client interface用来暂存Helm Client实例,下面看看具体的实现。
func newClient() helm.Interface { options := []helm.Option{helm.Host(settings.TillerHost), helm.ConnectTimeout(settings.TillerConnectionTimeout)} if settings.TLSVerify || settings.TLSEnable { debug("Host=%q, Key=%q, Cert=%q, CA=%q\n", settings.TLSServerName, settings.TLSKeyFile, settings.TLSCertFile, settings.TLSCaCertFile) tlsopts := tlsutil.Options{ ServerName: settings.TLSServerName, KeyFile: settings.TLSKeyFile, CertFile: settings.TLSCertFile, InsecureSkipVerify: true, } if settings.TLSVerify { tlsopts.CaCertFile = settings.TLSCaCertFile tlsopts.InsecureSkipVerify = false } tlscfg, err := tlsutil.ClientConfig(tlsopts) if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(2) } options = append(options, helm.WithTLS(tlscfg)) } return helm.NewClient(options...) }
通过阅读代码可知,ensureHelmClient函数基本上就是将Helm Client的各个参数传递过去,主要包含是否开启TLS访问,以及开启后证书的信息传递,最后配置一下超时时间等信息,这里其实仅完成了基本信息的配置,真正与Tiller建立连接和访问还得等待后面真正有需求时才会工作。