X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1aa2903df6165ecc8164c40957f282d5f7174b21..df279041b8f688270b8c6791d035ffbcd40688c3:/lib/config/deprecated.go diff --git a/lib/config/deprecated.go b/lib/config/deprecated.go index 7b11e090ee..0552b66adb 100644 --- a/lib/config/deprecated.go +++ b/lib/config/deprecated.go @@ -11,7 +11,7 @@ import ( "os" "strings" - "git.curoverse.com/arvados.git/sdk/go/arvados" + "git.arvados.org/arvados.git/sdk/go/arvados" "github.com/ghodss/yaml" ) @@ -23,6 +23,13 @@ type deprRequestLimits struct { type deprCluster struct { RequestLimits deprRequestLimits NodeProfiles map[string]nodeProfile + Login struct { + GoogleClientID *string + GoogleClientSecret *string + GoogleAlternateEmailAddresses *bool + ProviderAppID *string + ProviderAppSecret *string + } } type deprecatedConfig struct { @@ -36,7 +43,6 @@ type nodeProfile struct { Keepproxy systemServiceInstance `json:"keepproxy"` Keepstore systemServiceInstance `json:"keepstore"` Keepweb systemServiceInstance `json:"keep-web"` - Nodemanager systemServiceInstance `json:"arvados-node-manager"` DispatchCloud systemServiceInstance `json:"arvados-dispatch-cloud"` RailsAPI systemServiceInstance `json:"arvados-api-server"` Websocket systemServiceInstance `json:"arvados-ws"` @@ -80,6 +86,34 @@ func (ldr *Loader) applyDeprecatedConfig(cfg *arvados.Config) error { if dst, n := &cluster.API.MaxRequestAmplification, dcluster.RequestLimits.MultiClusterRequestConcurrency; n != nil && *n != *dst { *dst = *n } + + // Google* moved to Google.* + if dst, n := &cluster.Login.Google.ClientID, dcluster.Login.GoogleClientID; n != nil && *n != *dst { + *dst = *n + if *n != "" { + // In old config, non-empty ClientID meant enable + cluster.Login.Google.Enable = true + } + } + if dst, n := &cluster.Login.Google.ClientSecret, dcluster.Login.GoogleClientSecret; n != nil && *n != *dst { + *dst = *n + } + if dst, n := &cluster.Login.Google.AlternateEmailAddresses, dcluster.Login.GoogleAlternateEmailAddresses; n != nil && *n != *dst { + *dst = *n + } + + // Provider* moved to SSO.Provider* + if dst, n := &cluster.Login.SSO.ProviderAppID, dcluster.Login.ProviderAppID; n != nil && *n != *dst { + *dst = *n + if *n != "" { + // In old config, non-empty ID meant enable + cluster.Login.SSO.Enable = true + } + } + if dst, n := &cluster.Login.SSO.ProviderAppSecret, dcluster.Login.ProviderAppSecret; n != nil && *n != *dst { + *dst = *n + } + cfg.Clusters[id] = cluster } return nil @@ -100,7 +134,7 @@ func applyDeprecatedNodeProfile(hostname string, ssi systemServiceInstance, svc if strings.HasPrefix(host, ":") { host = hostname + host } - svc.InternalURLs[arvados.URL{Scheme: scheme, Host: host}] = arvados.ServiceInstance{} + svc.InternalURLs[arvados.URL{Scheme: scheme, Host: host, Path: "/"}] = arvados.ServiceInstance{} } func (ldr *Loader) loadOldConfigHelper(component, path string, target interface{}) error { @@ -153,6 +187,7 @@ func loadOldClientConfig(cluster *arvados.Cluster, client *arvados.Client) { } if client.APIHost != "" { cluster.Services.Controller.ExternalURL.Host = client.APIHost + cluster.Services.Controller.ExternalURL.Path = "/" } if client.Scheme != "" { cluster.Services.Controller.ExternalURL.Scheme = client.Scheme @@ -268,7 +303,7 @@ func (ldr *Loader) loadOldWebsocketConfig(cfg *arvados.Config) error { cluster.PostgreSQL.ConnectionPool = *oc.PostgresPool } if oc.Listen != nil { - cluster.Services.Websocket.InternalURLs[arvados.URL{Host: *oc.Listen}] = arvados.ServiceInstance{} + cluster.Services.Websocket.InternalURLs[arvados.URL{Host: *oc.Listen, Path: "/"}] = arvados.ServiceInstance{} } if oc.LogLevel != nil { cluster.SystemLogs.LogLevel = *oc.LogLevel @@ -327,7 +362,7 @@ func (ldr *Loader) loadOldKeepproxyConfig(cfg *arvados.Config) error { loadOldClientConfig(cluster, oc.Client) if oc.Listen != nil { - cluster.Services.Keepproxy.InternalURLs[arvados.URL{Host: *oc.Listen}] = arvados.ServiceInstance{} + cluster.Services.Keepproxy.InternalURLs[arvados.URL{Host: *oc.Listen, Path: "/"}] = arvados.ServiceInstance{} } if oc.DefaultReplicas != nil { cluster.Collections.DefaultReplication = *oc.DefaultReplicas @@ -370,27 +405,27 @@ const defaultKeepWebConfigPath = "/etc/arvados/keep-web/keep-web.yml" type oldKeepWebConfig struct { Client *arvados.Client - Listen string + Listen *string - AnonymousTokens []string - AttachmentOnlyHost string - TrustAllContent bool + AnonymousTokens *[]string + AttachmentOnlyHost *string + TrustAllContent *bool Cache struct { - TTL arvados.Duration - UUIDTTL arvados.Duration - MaxCollectionEntries int - MaxCollectionBytes int64 - MaxPermissionEntries int - MaxUUIDEntries int + TTL *arvados.Duration + UUIDTTL *arvados.Duration + MaxCollectionEntries *int + MaxCollectionBytes *int64 + MaxPermissionEntries *int + MaxUUIDEntries *int } // Hack to support old command line flag, which is a bool // meaning "get actual token from environment". - deprecatedAllowAnonymous bool + deprecatedAllowAnonymous *bool // Authorization token to be included in all health check requests. - ManagementToken string + ManagementToken *string } func (ldr *Loader) loadOldKeepWebConfig(cfg *arvados.Config) error { @@ -412,22 +447,43 @@ func (ldr *Loader) loadOldKeepWebConfig(cfg *arvados.Config) error { loadOldClientConfig(cluster, oc.Client) - cluster.Services.WebDAV.InternalURLs[arvados.URL{Host: oc.Listen}] = arvados.ServiceInstance{} - cluster.Services.WebDAVDownload.InternalURLs[arvados.URL{Host: oc.Listen}] = arvados.ServiceInstance{} - cluster.Services.WebDAVDownload.ExternalURL = arvados.URL{Host: oc.AttachmentOnlyHost} - cluster.TLS.Insecure = oc.Client.Insecure - cluster.ManagementToken = oc.ManagementToken - cluster.Collections.TrustAllContent = oc.TrustAllContent - cluster.Collections.WebDAVCache.TTL = oc.Cache.TTL - cluster.Collections.WebDAVCache.UUIDTTL = oc.Cache.UUIDTTL - cluster.Collections.WebDAVCache.MaxCollectionEntries = oc.Cache.MaxCollectionEntries - cluster.Collections.WebDAVCache.MaxCollectionBytes = oc.Cache.MaxCollectionBytes - cluster.Collections.WebDAVCache.MaxPermissionEntries = oc.Cache.MaxPermissionEntries - cluster.Collections.WebDAVCache.MaxUUIDEntries = oc.Cache.MaxUUIDEntries - if len(oc.AnonymousTokens) > 0 { - cluster.Users.AnonymousUserToken = oc.AnonymousTokens[0] - if len(oc.AnonymousTokens) > 1 { - ldr.Logger.Warn("More than 1 anonymous tokens configured, using only the first and discarding the rest.") + if oc.Listen != nil { + cluster.Services.WebDAV.InternalURLs[arvados.URL{Host: *oc.Listen, Path: "/"}] = arvados.ServiceInstance{} + cluster.Services.WebDAVDownload.InternalURLs[arvados.URL{Host: *oc.Listen, Path: "/"}] = arvados.ServiceInstance{} + } + if oc.AttachmentOnlyHost != nil { + cluster.Services.WebDAVDownload.ExternalURL = arvados.URL{Host: *oc.AttachmentOnlyHost, Path: "/"} + } + if oc.ManagementToken != nil { + cluster.ManagementToken = *oc.ManagementToken + } + if oc.TrustAllContent != nil { + cluster.Collections.TrustAllContent = *oc.TrustAllContent + } + if oc.Cache.TTL != nil { + cluster.Collections.WebDAVCache.TTL = *oc.Cache.TTL + } + if oc.Cache.UUIDTTL != nil { + cluster.Collections.WebDAVCache.UUIDTTL = *oc.Cache.UUIDTTL + } + if oc.Cache.MaxCollectionEntries != nil { + cluster.Collections.WebDAVCache.MaxCollectionEntries = *oc.Cache.MaxCollectionEntries + } + if oc.Cache.MaxCollectionBytes != nil { + cluster.Collections.WebDAVCache.MaxCollectionBytes = *oc.Cache.MaxCollectionBytes + } + if oc.Cache.MaxPermissionEntries != nil { + cluster.Collections.WebDAVCache.MaxPermissionEntries = *oc.Cache.MaxPermissionEntries + } + if oc.Cache.MaxUUIDEntries != nil { + cluster.Collections.WebDAVCache.MaxUUIDEntries = *oc.Cache.MaxUUIDEntries + } + if oc.AnonymousTokens != nil { + if len(*oc.AnonymousTokens) > 0 { + cluster.Users.AnonymousUserToken = (*oc.AnonymousTokens)[0] + if len(*oc.AnonymousTokens) > 1 { + ldr.Logger.Warn("More than 1 anonymous tokens configured, using only the first and discarding the rest.") + } } } @@ -439,11 +495,11 @@ const defaultGitHttpdConfigPath = "/etc/arvados/git-httpd/git-httpd.yml" type oldGitHttpdConfig struct { Client *arvados.Client - Listen string - GitCommand string - GitoliteHome string - RepoRoot string - ManagementToken string + Listen *string + GitCommand *string + GitoliteHome *string + RepoRoot *string + ManagementToken *string } func (ldr *Loader) loadOldGitHttpdConfig(cfg *arvados.Config) error { @@ -465,12 +521,21 @@ func (ldr *Loader) loadOldGitHttpdConfig(cfg *arvados.Config) error { loadOldClientConfig(cluster, oc.Client) - cluster.Services.GitHTTP.InternalURLs[arvados.URL{Host: oc.Listen}] = arvados.ServiceInstance{} - cluster.TLS.Insecure = oc.Client.Insecure - cluster.ManagementToken = oc.ManagementToken - cluster.Git.GitCommand = oc.GitCommand - cluster.Git.GitoliteHome = oc.GitoliteHome - cluster.Git.Repositories = oc.RepoRoot + if oc.Listen != nil { + cluster.Services.GitHTTP.InternalURLs[arvados.URL{Host: *oc.Listen}] = arvados.ServiceInstance{} + } + if oc.ManagementToken != nil { + cluster.ManagementToken = *oc.ManagementToken + } + if oc.GitCommand != nil { + cluster.Git.GitCommand = *oc.GitCommand + } + if oc.GitoliteHome != nil { + cluster.Git.GitoliteHome = *oc.GitoliteHome + } + if oc.RepoRoot != nil { + cluster.Git.Repositories = *oc.RepoRoot + } cfg.Clusters[cluster.ClusterID] = *cluster return nil