in compliance/kibana.go [89:116]
func NewKibanaClient() (*Kibana, error) {
var client http.Client
if caCert := elasticPackageGetEnv("CA_CERT"); caCert != "" {
certPool, err := x509.SystemCertPool()
if err != nil {
return nil, fmt.Errorf("failed to get system certificate pool: %w", err)
}
pem, err := os.ReadFile(caCert)
if err != nil {
return nil, fmt.Errorf("failed to read certificate \"%s\": %w", caCert, err)
}
if ok := certPool.AppendCertsFromPEM(pem); !ok {
return nil, fmt.Errorf("no certs were appended from \"%s\"", caCert)
}
client.Transport = &http.Transport{
TLSClientConfig: &tls.Config{
RootCAs: certPool,
},
}
}
return &Kibana{
Host: elasticPackageGetEnv("KIBANA_HOST"),
Password: elasticPackageGetEnv("ELASTICSEARCH_PASSWORD"),
Username: elasticPackageGetEnv("ELASTICSEARCH_USERNAME"),
client: &client,
}, nil
}