[arvados] updated: 2.4.0-63-g5c30895e6

git repository hosting git at public.arvados.org
Tue May 31 19:14:42 UTC 2022


Summary of changes:
 lib/config/load.go               | 19 +++++++++++++++++++
 lib/config/load_test.go          | 27 ++++++++++++++++++++++++++-
 lib/install/deps.go              | 36 +++++++++++++++++++++++++++++++++---
 sdk/go/health/aggregator_test.go |  1 +
 4 files changed, 79 insertions(+), 4 deletions(-)

       via  5c30895e663c90a772b17d2a281836534727d6d4 (commit)
       via  956a0b3b5cacfb425068975d44b998dc43a7f5e0 (commit)
      from  c818d34dc83bd6b275956b348468b30f19f1cf65 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 5c30895e663c90a772b17d2a281836534727d6d4
Author: Tom Clegg <tom at curii.com>
Date:   Fri May 20 10:31:40 2022 -0400

    Merge branch '18983-warn-unused-local-keep'
    
    fixes #18983
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curii.com>

diff --git a/lib/config/load.go b/lib/config/load.go
index 5afb51c5a..a8d1859c0 100644
--- a/lib/config/load.go
+++ b/lib/config/load.go
@@ -320,6 +320,7 @@ func (ldr *Loader) Load() (*arvados.Config, error) {
 			ldr.checkEnum("Containers.LocalKeepLogsToContainerLog", cc.Containers.LocalKeepLogsToContainerLog, "none", "all", "errors"),
 			ldr.checkEmptyKeepstores(cc),
 			ldr.checkUnlistedKeepstores(cc),
+			ldr.checkLocalKeepBlobBuffers(cc),
 			ldr.checkStorageClasses(cc),
 			ldr.checkCUDAVersions(cc),
 			// TODO: check non-empty Rendezvous on
@@ -415,6 +416,24 @@ cluster:
 	return nil
 }
 
+func (ldr *Loader) checkLocalKeepBlobBuffers(cc arvados.Cluster) error {
+	kbb := cc.Containers.LocalKeepBlobBuffersPerVCPU
+	if kbb == 0 {
+		return nil
+	}
+	for uuid, vol := range cc.Volumes {
+		if len(vol.AccessViaHosts) > 0 {
+			ldr.Logger.Warnf("LocalKeepBlobBuffersPerVCPU is %d but will not be used because at least one volume (%s) uses AccessViaHosts -- suggest changing to 0", kbb, uuid)
+			return nil
+		}
+		if !vol.ReadOnly && vol.Replication < cc.Collections.DefaultReplication {
+			ldr.Logger.Warnf("LocalKeepBlobBuffersPerVCPU is %d but will not be used because at least one volume (%s) has lower replication than DefaultReplication (%d < %d) -- suggest changing to 0", kbb, uuid, vol.Replication, cc.Collections.DefaultReplication)
+			return nil
+		}
+	}
+	return nil
+}
+
 func (ldr *Loader) checkStorageClasses(cc arvados.Cluster) error {
 	classOnVolume := map[string]bool{}
 	for volid, vol := range cc.Volumes {
diff --git a/lib/config/load_test.go b/lib/config/load_test.go
index 7588386d5..c70d41a98 100644
--- a/lib/config/load_test.go
+++ b/lib/config/load_test.go
@@ -232,7 +232,7 @@ Clusters:
         InternalURLs:
           "http://host.example:12345": {}
     Volumes:
-      zzzzz-nyw5e-aaaaaaaaaaaaaaa: {}
+      zzzzz-nyw5e-aaaaaaaaaaaaaaa: {Replication: 2}
 `, &logbuf).Load()
 	c.Assert(err, check.IsNil)
 	c.Log(logbuf.String())
@@ -582,6 +582,31 @@ func (s *LoadSuite) TestListKeys(c *check.C) {
 	}
 }
 
+func (s *LoadSuite) TestWarnUnusedLocalKeep(c *check.C) {
+	var logbuf bytes.Buffer
+	_, err := testLoader(c, `
+Clusters:
+ z1111:
+  Volumes:
+   z:
+    Replication: 1
+`, &logbuf).Load()
+	c.Assert(err, check.IsNil)
+	c.Check(logbuf.String(), check.Matches, `(?ms).*LocalKeepBlobBuffersPerVCPU is 1 but will not be used because at least one volume \(z\) has lower replication than DefaultReplication \(1 < 2\) -- suggest changing to 0.*`)
+
+	logbuf.Reset()
+	_, err = testLoader(c, `
+Clusters:
+ z1111:
+  Volumes:
+   z:
+    AccessViaHosts:
+     "http://0.0.0.0:12345": {}
+`, &logbuf).Load()
+	c.Assert(err, check.IsNil)
+	c.Check(logbuf.String(), check.Matches, `(?ms).*LocalKeepBlobBuffersPerVCPU is 1 but will not be used because at least one volume \(z\) uses AccessViaHosts -- suggest changing to 0.*`)
+}
+
 func (s *LoadSuite) TestImplicitStorageClasses(c *check.C) {
 	// If StorageClasses and Volumes.*.StorageClasses are all
 	// empty, there is a default storage class named "default".
diff --git a/sdk/go/health/aggregator_test.go b/sdk/go/health/aggregator_test.go
index 04106caa4..cc395017b 100644
--- a/sdk/go/health/aggregator_test.go
+++ b/sdk/go/health/aggregator_test.go
@@ -32,6 +32,7 @@ func (s *AggregatorSuite) TestInterface(c *check.C) {
 func (s *AggregatorSuite) SetUpTest(c *check.C) {
 	s.handler = &Aggregator{Cluster: &arvados.Cluster{
 		ManagementToken: arvadostest.ManagementToken,
+		Containers:      arvados.ContainersConfig{LocalKeepBlobBuffersPerVCPU: 0},
 	}}
 	s.req = httptest.NewRequest("GET", "/_health/all", nil)
 	s.req.Header.Set("Authorization", "Bearer "+arvadostest.ManagementToken)

commit 956a0b3b5cacfb425068975d44b998dc43a7f5e0
Author: Tom Clegg <tom at curii.com>
Date:   Tue May 17 14:56:08 2022 -0400

    Merge branch '15370-install-docker'
    
    refs #15370
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curii.com>

diff --git a/lib/install/deps.go b/lib/install/deps.go
index 4c1979153..b4f110e3c 100644
--- a/lib/install/deps.go
+++ b/lib/install/deps.go
@@ -189,9 +189,8 @@ func (inst *installCommand) RunCommand(prog string, args []string, stdin io.Read
 			"xvfb",
 		)
 		if dev || test {
-			pkgs = append(pkgs,
-				"squashfs-tools", // for singularity
-			)
+			pkgs = append(pkgs, "squashfs-tools") // for singularity
+			pkgs = append(pkgs, "gnupg")          // for docker install recipe
 		}
 		switch {
 		case osv.Debian && osv.Major >= 10:
@@ -214,6 +213,37 @@ func (inst *installCommand) RunCommand(prog string, args []string, stdin io.Read
 		}
 	}
 
+	if dev || test {
+		if havedockerversion, err := exec.Command("docker", "--version").CombinedOutput(); err == nil {
+			logger.Printf("%s installed, assuming that version is ok", bytes.TrimSuffix(havedockerversion, []byte("\n")))
+		} else if osv.Debian {
+			var codename string
+			switch osv.Major {
+			case 10:
+				codename = "buster"
+			case 11:
+				codename = "bullseye"
+			default:
+				err = fmt.Errorf("don't know how to install docker-ce for debian %d", osv.Major)
+				return 1
+			}
+			err = inst.runBash(`
+rm -f /usr/share/keyrings/docker-archive-keyring.gpg
+curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
+echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian/ `+codename+` stable' | \
+    tee /etc/apt/sources.list.d/docker.list
+apt-get update
+DEBIAN_FRONTEND=noninteractive apt-get --yes --no-install-recommends install docker-ce
+`, stdout, stderr)
+			if err != nil {
+				return 1
+			}
+		} else {
+			err = fmt.Errorf("don't know how to install docker for osversion %v", osv)
+			return 1
+		}
+	}
+
 	os.Mkdir("/var/lib/arvados", 0755)
 	os.Mkdir("/var/lib/arvados/tmp", 0700)
 	if prod || pkg {

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list