in pkg/loadbalancers/target_proxies.go [106:195]
func (l *L7) checkHttpsProxy() (err error) {
isL7ILB := utils.IsGCEL7ILBIngress(l.runtimeInfo.Ingress)
tr := translator.NewTranslator(isL7ILB, l.namer)
env := &translator.Env{FrontendConfig: l.runtimeInfo.FrontendConfig}
if len(l.sslCerts) == 0 {
klog.V(2).Infof("No SSL certificates for %q, will not create HTTPS Proxy.", l)
return nil
}
urlMapKey, err := l.CreateKey(l.um.Name)
if err != nil {
return err
}
description, err := l.description()
version := l.Versions().TargetHttpProxy
proxy, sslPolicySet, err := tr.ToCompositeTargetHttpsProxy(env, description, version, urlMapKey, l.sslCerts)
if err != nil {
return err
}
key, err := l.CreateKey(proxy.Name)
if err != nil {
return err
}
currentProxy, _ := composite.GetTargetHttpsProxy(l.cloud, key, version)
if err != nil {
return err
}
if currentProxy == nil {
klog.V(3).Infof("Creating new https Proxy for urlmap %q", l.um.Name)
if err = composite.CreateTargetHttpsProxy(l.cloud, key, proxy); err != nil {
return err
}
l.recorder.Eventf(l.runtimeInfo.Ingress, corev1.EventTypeNormal, events.SyncIngress, "TargetProxy %q created", key.Name)
key, err = l.CreateKey(proxy.Name)
if err != nil {
return err
}
currentProxy, err = composite.GetTargetHttpsProxy(l.cloud, key, version)
if err != nil {
return err
}
l.tps = currentProxy
return nil
}
if !utils.EqualResourcePaths(currentProxy.UrlMap, proxy.UrlMap) {
klog.V(2).Infof("Https Proxy %v has the wrong url map, setting %v overwriting %v", currentProxy.Name, proxy.UrlMap, currentProxy.UrlMap)
key, err := l.CreateKey(currentProxy.Name)
if err != nil {
return err
}
if err := composite.SetUrlMapForTargetHttpsProxy(l.cloud, key, currentProxy, proxy.UrlMap); err != nil {
return err
}
l.recorder.Eventf(l.runtimeInfo.Ingress, corev1.EventTypeNormal, events.SyncIngress, "TargetProxy %q updated", key.Name)
}
if !l.compareCerts(currentProxy.SslCertificates) {
klog.V(2).Infof("Https Proxy %q has the wrong ssl certs, setting %v overwriting %v",
currentProxy.Name, toCertNames(l.sslCerts), currentProxy.SslCertificates)
var sslCertURLs []string
for _, cert := range l.sslCerts {
sslCertURLs = append(sslCertURLs, cert.SelfLink)
}
key, err := l.CreateKey(currentProxy.Name)
if err != nil {
return err
}
if err := composite.SetSslCertificateForTargetHttpsProxy(l.cloud, key, currentProxy, sslCertURLs); err != nil {
return err
}
l.recorder.Eventf(l.runtimeInfo.Ingress, corev1.EventTypeNormal, events.SyncIngress, "TargetProxy %q certs updated", key.Name)
}
if flags.F.EnableFrontendConfig && sslPolicySet {
if err := l.ensureSslPolicy(env, currentProxy, proxy.SslPolicy); err != nil {
return err
}
}
l.tps = currentProxy
return nil
}