X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/41305b5ac71cc9a306dc654c42c11ffcc4258a47..ac2ea4ef187f7df369551a8cfa047fed8a1a2ba9:/sdk/go/arvados/config.go diff --git a/sdk/go/arvados/config.go b/sdk/go/arvados/config.go index 9dc9e17dd8..f0adcda5f1 100644 --- a/sdk/go/arvados/config.go +++ b/sdk/go/arvados/config.go @@ -10,6 +10,7 @@ import ( "fmt" "net/url" "os" + "time" "git.arvados.org/arvados.git/sdk/go/config" ) @@ -24,6 +25,8 @@ var DefaultConfigFile = func() string { type Config struct { Clusters map[string]Cluster AutoReloadConfig bool + SourceTimestamp time.Time + SourceSHA256 string } // GetConfig returns the current system config, loading it from @@ -63,8 +66,24 @@ type WebDAVCacheConfig struct { MaxBlockEntries int MaxCollectionEntries int MaxCollectionBytes int64 - MaxPermissionEntries int MaxUUIDEntries int + MaxSessions int +} + +type UploadDownloadPermission struct { + Upload bool + Download bool +} + +type UploadDownloadRolePermissions struct { + User UploadDownloadPermission + Admin UploadDownloadPermission +} + +type ManagedProperties map[string]struct { + Value interface{} + Function string + Protected bool } type Cluster struct { @@ -78,19 +97,24 @@ type Cluster struct { PostgreSQL PostgreSQL API struct { - AsyncPermissionsUpdateInterval Duration - DisabledAPIs StringSet - MaxIndexDatabaseRead int - MaxItemsPerResponse int - MaxConcurrentRequests int - MaxKeepBlobBuffers int - MaxRequestAmplification int - MaxRequestSize int - RequestTimeout Duration - SendTimeout Duration - WebsocketClientEventQueue int - WebsocketServerEventQueue int - KeepServiceRequestTimeout Duration + AsyncPermissionsUpdateInterval Duration + DisabledAPIs StringSet + MaxIndexDatabaseRead int + MaxItemsPerResponse int + MaxConcurrentRequests int + MaxKeepBlobBuffers int + MaxRequestAmplification int + MaxRequestSize int + MaxTokenLifetime Duration + RequestTimeout Duration + SendTimeout Duration + WebsocketClientEventQueue int + WebsocketServerEventQueue int + KeepServiceRequestTimeout Duration + VocabularyPath string + FreezeProjectRequiresDescription bool + FreezeProjectRequiresProperties StringSet + UnfreezeProjectRequiresAdmin bool } AuditLogs struct { MaxAge Duration @@ -98,23 +122,19 @@ type Cluster struct { UnloggedAttributes StringSet } Collections struct { - BlobSigning bool - BlobSigningKey string - BlobSigningTTL Duration - BlobTrash bool - BlobTrashLifetime Duration - BlobTrashCheckInterval Duration - BlobTrashConcurrency int - BlobDeleteConcurrency int - BlobReplicateConcurrency int - CollectionVersioning bool - DefaultTrashLifetime Duration - DefaultReplication int - ManagedProperties map[string]struct { - Value interface{} - Function string - Protected bool - } + BlobSigning bool + BlobSigningKey string + BlobSigningTTL Duration + BlobTrash bool + BlobTrashLifetime Duration + BlobTrashCheckInterval Duration + BlobTrashConcurrency int + BlobDeleteConcurrency int + BlobReplicateConcurrency int + CollectionVersioning bool + DefaultTrashLifetime Duration + DefaultReplication int + ManagedProperties ManagedProperties PreserveVersionIfIdle Duration TrashSweepInterval Duration TrustAllContent bool @@ -126,8 +146,13 @@ type Cluster struct { BalanceCollectionBatch int BalanceCollectionBuffers int BalanceTimeout Duration + BalanceUpdateLimit int WebDAVCache WebDAVCacheConfig + + KeepproxyPermission UploadDownloadRolePermissions + WebDAVPermission UploadDownloadRolePermissions + WebDAVLogEvents bool } Git struct { GitCommand string @@ -151,30 +176,29 @@ type Cluster struct { UsernameAttribute string } Google struct { - Enable bool - ClientID string - ClientSecret string - AlternateEmailAddresses bool + Enable bool + ClientID string + ClientSecret string + AlternateEmailAddresses bool + AuthenticationRequestParameters map[string]string } OpenIDConnect struct { - Enable bool - Issuer string - ClientID string - ClientSecret string - EmailClaim string - EmailVerifiedClaim string - UsernameClaim string + Enable bool + Issuer string + ClientID string + ClientSecret string + EmailClaim string + EmailVerifiedClaim string + UsernameClaim string + AcceptAccessToken bool + AcceptAccessTokenScope string + AuthenticationRequestParameters map[string]string } PAM struct { Enable bool Service string DefaultEmailDomain string } - SSO struct { - Enable bool - ProviderAppID string - ProviderAppSecret string - } Test struct { Enable bool Users map[string]TestUser @@ -183,6 +207,7 @@ type Cluster struct { RemoteTokenRefresh Duration TokenLifetime Duration TrustedClients map[string]struct{} + IssueTrustedTokens bool } Mail struct { MailchimpAPIKey string @@ -204,6 +229,7 @@ type Cluster struct { Insecure bool } Users struct { + ActivatedUsersAreVisibleToOthers bool AnonymousUserToken string AdminNotifierEmailFrom string AutoAdminFirstUser bool @@ -217,12 +243,15 @@ type Cluster struct { NewUserNotificationRecipients StringSet NewUsersAreActive bool UserNotifierEmailFrom string + UserNotifierEmailBcc StringSet UserProfileNotificationAddress string PreferDomainForUsername string UserSetupMailText string + RoleGroupsVisibleToAll bool } - Volumes map[string]Volume - Workbench struct { + StorageClasses map[string]StorageClassConfig + Volumes map[string]Volume + Workbench struct { ActivationContactLink string APIClientConnectTimeout Duration APIClientReceiveTimeout Duration @@ -255,15 +284,17 @@ type Cluster struct { Options map[string]struct{} } UserProfileFormMessage string - VocabularyURL string WelcomePageHTML string InactivePageHTML string SSHHelpPageHTML string SSHHelpHostSuffix string IdleTimeout Duration } +} - ForceLegacyAPI14 bool +type StorageClassConfig struct { + Default bool + Priority int } type Volume struct { @@ -277,8 +308,8 @@ type Volume struct { type S3VolumeDriverParameters struct { IAMRole string - AccessKey string - SecretKey string + AccessKeyID string + SecretAccessKey string Endpoint string Region string Bucket string @@ -290,6 +321,7 @@ type S3VolumeDriverParameters struct { ReadTimeout Duration RaceWindow Duration UnsafeDelete bool + PrefixLength int } type AzureVolumeDriverParameters struct { @@ -315,6 +347,7 @@ type Services struct { Composer Service Controller Service DispatchCloud Service + DispatchLSF Service GitHTTP Service GitSSH Service Health Service @@ -322,7 +355,6 @@ type Services struct { Keepproxy Service Keepstore Service RailsAPI Service - SSO Service WebDAVDownload Service WebDAV Service WebShell Service @@ -385,6 +417,12 @@ type RemoteCluster struct { ActivateUsers bool } +type CUDAFeatures struct { + DriverVersion string + HardwareCapability string + DeviceCount int +} + type InstanceType struct { Name string ProviderType string @@ -395,23 +433,28 @@ type InstanceType struct { AddedScratch ByteSize Price float64 Preemptible bool + CUDA CUDAFeatures } type ContainersConfig struct { - CloudVMs CloudVMsConfig - CrunchRunCommand string - CrunchRunArgumentsList []string - DefaultKeepCacheRAM ByteSize - DispatchPrivateKey string - LogReuseDecisions bool - MaxComputeVMs int - MaxDispatchAttempts int - MaxRetryAttempts int - MinRetryPeriod Duration - ReserveExtraRAM ByteSize - StaleLockTimeout Duration - SupportedDockerImageFormats StringSet - UsePreemptibleInstances bool + CloudVMs CloudVMsConfig + CrunchRunCommand string + CrunchRunArgumentsList []string + DefaultKeepCacheRAM ByteSize + DispatchPrivateKey string + LogReuseDecisions bool + MaxComputeVMs int + MaxDispatchAttempts int + MaxRetryAttempts int + MinRetryPeriod Duration + ReserveExtraRAM ByteSize + StaleLockTimeout Duration + SupportedDockerImageFormats StringSet + AlwaysUsePreemptibleInstances bool + PreemptiblePriceFactor float64 + RuntimeEngine string + LocalKeepBlobBuffersPerVCPU int + LocalKeepLogsToContainerLog string JobsAPI struct { Enable string @@ -429,6 +472,10 @@ type ContainersConfig struct { LogUpdatePeriod Duration LogUpdateSize ByteSize } + ShellAccess struct { + Admin bool + User bool + } SLURM struct { PrioritySpread int64 SbatchArgumentsList []string @@ -443,6 +490,11 @@ type ContainersConfig struct { AssignNodeHostname string } } + LSF struct { + BsubSudoUser string + BsubArgumentsList []string + BsubCUDAArguments []string + } } type CloudVMsConfig struct { @@ -576,33 +628,37 @@ func (ss *StringSet) UnmarshalJSON(data []byte) error { type ServiceName string const ( - ServiceNameRailsAPI ServiceName = "arvados-api-server" ServiceNameController ServiceName = "arvados-controller" ServiceNameDispatchCloud ServiceName = "arvados-dispatch-cloud" + ServiceNameDispatchLSF ServiceName = "arvados-dispatch-lsf" + ServiceNameGitHTTP ServiceName = "arvados-git-httpd" ServiceNameHealth ServiceName = "arvados-health" - ServiceNameWorkbench1 ServiceName = "arvados-workbench1" - ServiceNameWorkbench2 ServiceName = "arvados-workbench2" - ServiceNameWebsocket ServiceName = "arvados-ws" ServiceNameKeepbalance ServiceName = "keep-balance" - ServiceNameKeepweb ServiceName = "keep-web" ServiceNameKeepproxy ServiceName = "keepproxy" ServiceNameKeepstore ServiceName = "keepstore" + ServiceNameKeepweb ServiceName = "keep-web" + ServiceNameRailsAPI ServiceName = "arvados-api-server" + ServiceNameWebsocket ServiceName = "arvados-ws" + ServiceNameWorkbench1 ServiceName = "arvados-workbench1" + ServiceNameWorkbench2 ServiceName = "arvados-workbench2" ) // Map returns all services as a map, suitable for iterating over all // services or looking up a service by name. func (svcs Services) Map() map[ServiceName]Service { return map[ServiceName]Service{ - ServiceNameRailsAPI: svcs.RailsAPI, ServiceNameController: svcs.Controller, ServiceNameDispatchCloud: svcs.DispatchCloud, + ServiceNameDispatchLSF: svcs.DispatchLSF, + ServiceNameGitHTTP: svcs.GitHTTP, ServiceNameHealth: svcs.Health, - ServiceNameWorkbench1: svcs.Workbench1, - ServiceNameWorkbench2: svcs.Workbench2, - ServiceNameWebsocket: svcs.Websocket, ServiceNameKeepbalance: svcs.Keepbalance, - ServiceNameKeepweb: svcs.WebDAV, ServiceNameKeepproxy: svcs.Keepproxy, ServiceNameKeepstore: svcs.Keepstore, + ServiceNameKeepweb: svcs.WebDAV, + ServiceNameRailsAPI: svcs.RailsAPI, + ServiceNameWebsocket: svcs.Websocket, + ServiceNameWorkbench1: svcs.Workbench1, + ServiceNameWorkbench2: svcs.Workbench2, } }