69.fifo
PR #1935
Fix line-jumping bug in FIFO implementation
PR #1707
runonce: better container state detection
PR #1961
Rename APIObject ID -> Name everywhere
PR #1746
Overall goal of this is to add a way to configure ssl mutual auth for connections with the kubelet server. In order to do so, this tries to pull together the different places in the APIServer that access the kubelet, and add a single set of flags for configuring both port and ssl.
I'm fairly new to golang (and the k8s codebase), comments on everything extremely welcome.
func NewKubeletClient(config *KubeletConfig) (KubeletClient, error) {
transport := http.DefaultTransport
if config.CAFile != "" {
t, err := NewClientCertTLSTransport(config.CertFile, config.KeyFile, config.CAFile)
if err != nil {
return nil, err
}
transport = t
}
c := &http.Client{Transport: transport}
return &HTTPKubeletClient{
Client: c,
Port: config.Port,
EnableHttps: config.EnableHttps,
}, nil
}
首先,它设置默认的 HTTP 传输为 http.DefaultTransport。然后检查配置(config)中是否设置了 CA 文件(CAFile)。如果设置了,那么就尝试使用客户端证书文件(CertFile),客户端密钥文件(KeyFile)和 CA 文件创建一个新的客户端证书 TLS 传输(NewClientCertTLSTransport)。如果这个过程中发生任何错误,它将返回一个错误并终止函数。
如果没有设置 CA 文件,或者成功创建了 TLS 传输,那么它将创建一个新的 HTTP 客户端,并将之前的传输设置为此客户端的传输方式。
最后,它返回一个新的 HTTPKubeletClient 实例,该实例使用先前创建的 HTTP 客户端,从配置中获取的端口号,以及一个标志表示是否启用 HTTPS。
总的来说,这个函数基于提供的配置创建了一个新的 Kubelet 客户端,这个客户端可以通过 HTTP 或 HTTPS(如果提供了证书和密钥)与 Kubelet 服务器进行通信。
PR #1969
Allow Meta lookup to work across ObjectType and ListMeta