Merge branch 'master' into 16678-login-tokens-lifetime-config
authorLucas Di Pentima <lucas@di-pentima.com.ar>
Fri, 21 Aug 2020 21:09:09 +0000 (18:09 -0300)
committerLucas Di Pentima <lucas@di-pentima.com.ar>
Fri, 21 Aug 2020 21:10:46 +0000 (18:10 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas@di-pentima.com.ar>

1  2 
lib/config/config.default.yml
lib/config/export.go
lib/config/generated_config.go
sdk/go/arvados/config.go

index 91cd8b435210f8b7debcbb718f6ea4e805b5ee5f,a1b471bd229e7f27b0cbd90bf79919f0d7123992..c392d8638d88d424cb41b8b7b748fda934d5f8d6
@@@ -139,9 -139,6 +139,6 @@@ Clusters
        Workbench2:
          InternalURLs: {}
          ExternalURL: ""
-       Nodemanager:
-         InternalURLs: {}
-         ExternalURL: "-"
        Health:
          InternalURLs: {}
          ExternalURL: "-"
        # Use of this feature is not recommended, if it can be avoided.
        ForwardSlashNameSubstitution: ""
  
+       # Include "folder objects" in S3 ListObjects responses.
+       S3FolderObjects: true
        # Managed collection properties. At creation time, if the client didn't
        # provide the listed keys, they will be automatically populated following
        # one of the following behaviors:
        # remain valid before it needs to be revalidated.
        RemoteTokenRefresh: 5m
  
 +      # How long a client token created from a login flow will be valid without
 +      # asking the user to re-login. Example values: 60m, 8h.
 +      # Default value zero means tokens don't have expiration.
 +      TokenLifetime: 0s
 +
      Git:
        # Path to git or gitolite-shell executable. Each authenticated
        # request will execute this program with the single argument "http-backend"
          TimeoutShutdown: 10s
  
          # Worker VM image ID.
+         # (aws) AMI identifier
+         # (azure) managed disks: the name of the managed disk image
+         # (azure) shared image gallery: the name of the image definition. Also
+         # see the SharedImageGalleryName and SharedImageGalleryImageVersion fields.
+         # (azure) unmanaged disks (deprecated): the complete URI of the VHD, e.g.
+         # https://xxxxx.blob.core.windows.net/system/Microsoft.Compute/Images/images/xxxxx.vhd
          ImageID: ""
  
          # An executable file (located on the dispatcher host) to be
            Network: ""
            Subnet: ""
  
-           # (azure) Where to store the VM VHD blobs
+           # (azure) managed disks: The resource group where the managed disk
+           # image can be found (if different from ResourceGroup).
+           ImageResourceGroup: ""
+           # (azure) shared image gallery: the name of the gallery
+           SharedImageGalleryName: ""
+           # (azure) shared image gallery: the version of the image definition
+           SharedImageGalleryImageVersion: ""
+           # (azure) unmanaged disks (deprecated): Where to store the VM VHD blobs
            StorageAccount: ""
            BlobContainer: ""
  
diff --combined lib/config/export.go
index 92389a73d4e0daa5744621c453e734cb140d3308,f15a2996197804c24face6be71fc4f97afb558f4..57bea78f056b72676de30177c7d48d5e86964408
@@@ -59,10 -59,10 +59,10 @@@ func ExportJSON(w io.Writer, cluster *a
  // exists.
  var whitelist = map[string]bool{
        // | sort -t'"' -k2,2
-       "ClusterID":                                    true,
        "API":                                          true,
        "API.AsyncPermissionsUpdateInterval":           false,
        "API.DisabledAPIs":                             false,
+       "API.KeepServiceRequestTimeout":                false,
        "API.MaxConcurrentRequests":                    false,
        "API.MaxIndexDatabaseRead":                     false,
        "API.MaxItemsPerResponse":                      true,
        "API.MaxRequestSize":                           true,
        "API.RailsSessionSecretToken":                  false,
        "API.RequestTimeout":                           true,
-       "API.WebsocketClientEventQueue":                false,
        "API.SendTimeout":                              true,
+       "API.WebsocketClientEventQueue":                false,
        "API.WebsocketServerEventQueue":                false,
-       "API.KeepServiceRequestTimeout":                false,
        "AuditLogs":                                    false,
        "AuditLogs.MaxAge":                             false,
        "AuditLogs.MaxDeleteBatch":                     false,
        "AuditLogs.UnloggedAttributes":                 false,
+       "ClusterID":                                    true,
        "Collections":                                  true,
+       "Collections.BalanceCollectionBatch":           false,
+       "Collections.BalanceCollectionBuffers":         false,
+       "Collections.BalancePeriod":                    false,
+       "Collections.BalanceTimeout":                   false,
+       "Collections.BlobDeleteConcurrency":            false,
+       "Collections.BlobMissingReport":                false,
+       "Collections.BlobReplicateConcurrency":         false,
        "Collections.BlobSigning":                      true,
        "Collections.BlobSigningKey":                   false,
        "Collections.BlobSigningTTL":                   true,
        "Collections.BlobTrash":                        false,
-       "Collections.BlobTrashLifetime":                false,
-       "Collections.BlobTrashConcurrency":             false,
        "Collections.BlobTrashCheckInterval":           false,
-       "Collections.BlobDeleteConcurrency":            false,
-       "Collections.BlobReplicateConcurrency":         false,
+       "Collections.BlobTrashConcurrency":             false,
+       "Collections.BlobTrashLifetime":                false,
        "Collections.CollectionVersioning":             false,
        "Collections.DefaultReplication":               true,
        "Collections.DefaultTrashLifetime":             true,
        "Collections.ManagedProperties.*":              true,
        "Collections.ManagedProperties.*.*":            true,
        "Collections.PreserveVersionIfIdle":            true,
+       "Collections.S3FolderObjects":                  true,
        "Collections.TrashSweepInterval":               false,
        "Collections.TrustAllContent":                  false,
        "Collections.WebDAVCache":                      false,
-       "Collections.BalanceCollectionBatch":           false,
-       "Collections.BalancePeriod":                    false,
-       "Collections.BalanceTimeout":                   false,
-       "Collections.BlobMissingReport":                false,
-       "Collections.BalanceCollectionBuffers":         false,
        "Containers":                                   true,
        "Containers.CloudVMs":                          false,
-       "Containers.CrunchRunCommand":                  false,
        "Containers.CrunchRunArgumentsList":            false,
+       "Containers.CrunchRunCommand":                  false,
        "Containers.DefaultKeepCacheRAM":               true,
        "Containers.DispatchPrivateKey":                false,
        "Containers.JobsAPI":                           true,
        "Login.OpenIDConnect":                          true,
        "Login.OpenIDConnect.ClientID":                 false,
        "Login.OpenIDConnect.ClientSecret":             false,
-       "Login.OpenIDConnect.Enable":                   true,
-       "Login.OpenIDConnect.Issuer":                   false,
        "Login.OpenIDConnect.EmailClaim":               false,
        "Login.OpenIDConnect.EmailVerifiedClaim":       false,
+       "Login.OpenIDConnect.Enable":                   true,
+       "Login.OpenIDConnect.Issuer":                   false,
        "Login.OpenIDConnect.UsernameClaim":            false,
        "Login.PAM":                                    true,
        "Login.PAM.DefaultEmailDomain":                 false,
        "Login.PAM.Enable":                             true,
        "Login.PAM.Service":                            false,
+       "Login.RemoteTokenRefresh":                     true,
        "Login.SSO":                                    true,
        "Login.SSO.Enable":                             true,
        "Login.SSO.ProviderAppID":                      false,
        "Login.SSO.ProviderAppSecret":                  false,
 +      "Login.RemoteTokenRefresh":                     true,
 +      "Login.TokenLifetime":                          false,
        "Mail":                                         true,
+       "Mail.EmailFrom":                               false,
+       "Mail.IssueReporterEmailFrom":                  false,
+       "Mail.IssueReporterEmailTo":                    false,
        "Mail.MailchimpAPIKey":                         false,
        "Mail.MailchimpListID":                         false,
        "Mail.SendUserSetupNotificationEmail":          false,
-       "Mail.IssueReporterEmailFrom":                  false,
-       "Mail.IssueReporterEmailTo":                    false,
        "Mail.SupportEmailAddress":                     true,
-       "Mail.EmailFrom":                               false,
        "ManagementToken":                              false,
        "PostgreSQL":                                   false,
        "RemoteClusters":                               true,
        "SystemRootToken":                              false,
        "TLS":                                          false,
        "Users":                                        true,
-       "Users.AnonymousUserToken":                     true,
        "Users.AdminNotifierEmailFrom":                 false,
+       "Users.AnonymousUserToken":                     true,
        "Users.AutoAdminFirstUser":                     false,
        "Users.AutoAdminUserWithEmail":                 false,
        "Users.AutoSetupNewUsers":                      false,
        "Workbench.EnableGettingStartedPopup":          true,
        "Workbench.EnablePublicProjectsPage":           true,
        "Workbench.FileViewersConfigURL":               true,
+       "Workbench.InactivePageHTML":                   true,
        "Workbench.LogViewerMaxBytes":                  true,
        "Workbench.MultiSiteSearch":                    true,
        "Workbench.ProfilingEnabled":                   true,
        "Workbench.ShowUserAgreementInline":            true,
        "Workbench.ShowUserNotifications":              true,
        "Workbench.SiteName":                           true,
+       "Workbench.SSHHelpHostSuffix":                  true,
+       "Workbench.SSHHelpPageHTML":                    true,
        "Workbench.Theme":                              true,
        "Workbench.UserProfileFormFields":              true,
        "Workbench.UserProfileFormFields.*":            true,
        "Workbench.UserProfileFormMessage":             true,
        "Workbench.VocabularyURL":                      true,
        "Workbench.WelcomePageHTML":                    true,
-       "Workbench.InactivePageHTML":                   true,
-       "Workbench.SSHHelpPageHTML":                    true,
-       "Workbench.SSHHelpHostSuffix":                  true,
  }
  
  func redactUnsafe(m map[string]interface{}, mPrefix, lookupPrefix string) error {
index a2ff94c3851d5db2156a8cec72e4779abd735213,8e42eb350516d172cec46c99fc0c163dcaa4fb46..f5004667b23f077750046cd7d0a567832e4e47a8
@@@ -145,9 -145,6 +145,6 @@@ Clusters
        Workbench2:
          InternalURLs: {}
          ExternalURL: ""
-       Nodemanager:
-         InternalURLs: {}
-         ExternalURL: "-"
        Health:
          InternalURLs: {}
          ExternalURL: "-"
        # Use of this feature is not recommended, if it can be avoided.
        ForwardSlashNameSubstitution: ""
  
+       # Include "folder objects" in S3 ListObjects responses.
+       S3FolderObjects: true
        # Managed collection properties. At creation time, if the client didn't
        # provide the listed keys, they will be automatically populated following
        # one of the following behaviors:
        # remain valid before it needs to be revalidated.
        RemoteTokenRefresh: 5m
  
 +      # How long a client token created from a login flow will be valid without
 +      # asking the user to re-login. Example values: 60m, 8h.
 +      # Default value zero means tokens don't have expiration.
 +      TokenLifetime: 0s
 +
      Git:
        # Path to git or gitolite-shell executable. Each authenticated
        # request will execute this program with the single argument "http-backend"
          TimeoutShutdown: 10s
  
          # Worker VM image ID.
+         # (aws) AMI identifier
+         # (azure) managed disks: the name of the managed disk image
+         # (azure) shared image gallery: the name of the image definition. Also
+         # see the SharedImageGalleryName and SharedImageGalleryImageVersion fields.
+         # (azure) unmanaged disks (deprecated): the complete URI of the VHD, e.g.
+         # https://xxxxx.blob.core.windows.net/system/Microsoft.Compute/Images/images/xxxxx.vhd
          ImageID: ""
  
          # An executable file (located on the dispatcher host) to be
            Network: ""
            Subnet: ""
  
-           # (azure) Where to store the VM VHD blobs
+           # (azure) managed disks: The resource group where the managed disk
+           # image can be found (if different from ResourceGroup).
+           ImageResourceGroup: ""
+           # (azure) shared image gallery: the name of the gallery
+           SharedImageGalleryName: ""
+           # (azure) shared image gallery: the version of the image definition
+           SharedImageGalleryImageVersion: ""
+           # (azure) unmanaged disks (deprecated): Where to store the VM VHD blobs
            StorageAccount: ""
            BlobContainer: ""
  
diff --combined sdk/go/arvados/config.go
index 399f1103fdf43fa11dd8ef162800f32895cb5948,41c20c8db2ee71cf4c4a024e7d1d73b72878a098..86673320da3c41fc394fc8381e0221a47fd2e436
@@@ -121,6 -121,7 +121,7 @@@ type Cluster struct 
                TrashSweepInterval           Duration
                TrustAllContent              bool
                ForwardSlashNameSubstitution string
+               S3FolderObjects              bool
  
                BlobMissingReport        string
                BalancePeriod            Duration
                }
                LoginCluster       string
                RemoteTokenRefresh Duration
 +              TokenLifetime      Duration
        }
        Mail struct {
                MailchimpAPIKey                string
@@@ -315,7 -315,6 +316,6 @@@ type Services struct 
        Keepbalance    Service
        Keepproxy      Service
        Keepstore      Service
-       Nodemanager    Service
        RailsAPI       Service
        SSO            Service
        WebDAVDownload Service
@@@ -568,7 -567,6 +568,6 @@@ const 
        ServiceNameController    ServiceName = "arvados-controller"
        ServiceNameDispatchCloud ServiceName = "arvados-dispatch-cloud"
        ServiceNameHealth        ServiceName = "arvados-health"
-       ServiceNameNodemanager   ServiceName = "arvados-node-manager"
        ServiceNameWorkbench1    ServiceName = "arvados-workbench1"
        ServiceNameWorkbench2    ServiceName = "arvados-workbench2"
        ServiceNameWebsocket     ServiceName = "arvados-ws"
@@@ -586,7 -584,6 +585,6 @@@ func (svcs Services) Map() map[ServiceN
                ServiceNameController:    svcs.Controller,
                ServiceNameDispatchCloud: svcs.DispatchCloud,
                ServiceNameHealth:        svcs.Health,
-               ServiceNameNodemanager:   svcs.Nodemanager,
                ServiceNameWorkbench1:    svcs.Workbench1,
                ServiceNameWorkbench2:    svcs.Workbench2,
                ServiceNameWebsocket:     svcs.Websocket,