in internal/alloydb/static.go [87:127]
func NewStaticConnectionInfoCache(
inst InstanceURI,
l debug.ContextLogger,
r io.Reader,
) (*StaticConnectionInfoCache, error) {
data, err := io.ReadAll(r)
if err != nil {
return nil, err
}
var d staticData
if err := json.Unmarshal(data, &d); err != nil {
return nil, err
}
static, ok := d.InstanceInfo[inst.URI()]
if !ok {
return nil, errtype.NewConfigError("unknown instance", inst.String())
}
cc, err := newClientCertificate(
inst, []byte(d.PrivateKey), static.PEMCertificateChain, static.CACert,
)
if err != nil {
return nil, err
}
pool := x509.NewCertPool()
pool.AddCert(cc.caCert)
info := ConnectionInfo{
Instance: inst,
IPAddrs: map[string]string{
PublicIP: static.PublicIPAddress,
PrivateIP: static.IPAddress,
PSC: static.PSCInstanceConfig.PSCDNSName,
},
ClientCert: cc.certChain,
RootCAs: pool,
Expiration: cc.expiry,
}
return &StaticConnectionInfoCache{
logger: l,
info: info,
}, nil
}