in app/registry/create.go [499:575]
func (a *App) prepareDNSConfig(ginContext *gin.Context, r *registry, _values *Values,
secretData map[string]map[string]interface{}, mrActions *[]string) (bool, error) {
//TODO: add something to mrActions
valuesChanged := false
if r.DNSNameOfficerEnabled == "" && _values.Portals.Officer.CustomDNS.Enabled {
_values.Portals.Officer.CustomDNS.Enabled = false
valuesChanged = true
} else if r.DNSNameOfficerEnabled != "" && r.DNSNameOfficer != "" {
_values.Portals.Officer.CustomDNS = CustomDNS{Enabled: true, Host: r.DNSNameOfficer}
valuesChanged = true
certFile, _, err := ginContext.Request.FormFile("officer-ssl")
if err == nil {
certData, err := ioutil.ReadAll(certFile)
if err != nil {
return false, errors.Wrap(err, "unable to read officer ssl data")
}
pemInfo, err := DecodePEM(certData)
if err != nil {
return false, validator.ValidationErrors([]validator.FieldError{
router.MakeFieldError("DNSNameOfficer", "pem-decode-error")})
}
secretPath := strings.ReplaceAll(a.Config.VaultOfficerSSLPath, "{registry}", r.Name)
secretPath = strings.ReplaceAll(secretPath, "{host}", r.DNSNameOfficer)
if _, ok := secretData[secretPath]; !ok {
secretData[secretPath] = make(map[string]interface{})
}
secretData[secretPath][VaultKeyCACert] = pemInfo.CACert
secretData[secretPath][VaultKeyCert] = pemInfo.Cert
secretData[secretPath][VaultKeyPK] = pemInfo.PrivateKey
}
}
if r.DNSNameCitizenEnabled == "" && _values.Portals.Citizen.CustomDNS.Enabled {
_values.Portals.Citizen.CustomDNS.Enabled = false
valuesChanged = true
} else if r.DNSNameCitizenEnabled != "" && r.DNSNameCitizen != "" {
_values.Portals.Citizen.CustomDNS = CustomDNS{Host: r.DNSNameCitizen, Enabled: true}
valuesChanged = true
certFile, _, err := ginContext.Request.FormFile("citizen-ssl")
if err == nil {
certData, err := ioutil.ReadAll(certFile)
if err != nil {
return false, errors.Wrap(err, "unable to read citizen ssl data")
}
pemInfo, err := DecodePEM(certData)
if err != nil {
return false, validator.ValidationErrors([]validator.FieldError{
router.MakeFieldError("DNSNameCitizen", "pem-decode-error")})
}
secretPath := strings.ReplaceAll(a.Config.VaultCitizenSSLPath, "{registry}", r.Name)
secretPath = strings.ReplaceAll(secretPath, "{host}", r.DNSNameCitizen)
if _, ok := secretData[secretPath]; !ok {
secretData[secretPath] = make(map[string]interface{})
}
secretData[secretPath][VaultKeyCACert] = pemInfo.CACert
secretData[secretPath][VaultKeyCert] = pemInfo.Cert
secretData[secretPath][VaultKeyPK] = pemInfo.PrivateKey
}
}
if valuesChanged {
_values.OriginalYaml[PortalsIndex] = _values.Portals
}
return valuesChanged, nil
}