You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2019/04/16 22:00:40 UTC

[mesos] branch 1.6.x updated (ac98f84 -> e8af5d0)

This is an automated email from the ASF dual-hosted git repository.

gilbert pushed a change to branch 1.6.x
in repository https://gitbox.apache.org/repos/asf/mesos.git.


    from ac98f84  Added MESOS-9159 and MESOS-9675 to the 1.6.3 CHANGELOG.
     new 7d93fd1  Added docker manifest v2s2 config to protobuf 'ContainerLayers'.
     new 2e67ef1  Added docker manifest v2s2 config to 'ImageInfo'.
     new e8af5d0  Supported docker manifest v2s2 config with image GC.

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 include/mesos/slave/containerizer.proto                      |  5 +++++
 .../mesos/provisioner/docker/metadata_manager.cpp            |  4 ++++
 src/slave/containerizer/mesos/provisioner/docker/store.cpp   |  4 ++++
 src/slave/containerizer/mesos/provisioner/provisioner.cpp    | 12 ++++++++++++
 src/slave/containerizer/mesos/provisioner/store.hpp          |  3 +++
 5 files changed, 28 insertions(+)


[mesos] 01/03: Added docker manifest v2s2 config to protobuf 'ContainerLayers'.

Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gilbert pushed a commit to branch 1.6.x
in repository https://gitbox.apache.org/repos/asf/mesos.git

commit 7d93fd15306fc969f900d79eddc318f927a83073
Author: Gilbert Song <so...@gmail.com>
AuthorDate: Mon Apr 15 18:53:58 2019 -0700

    Added docker manifest v2s2 config to protobuf 'ContainerLayers'.
    
    (cherry picked from commit 9c6d178456b86b2aa7b8f9de6d929f8c5bdf4109)
---
 include/mesos/slave/containerizer.proto | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/include/mesos/slave/containerizer.proto b/include/mesos/slave/containerizer.proto
index 5b4dcdd..ba1746c 100644
--- a/include/mesos/slave/containerizer.proto
+++ b/include/mesos/slave/containerizer.proto
@@ -292,4 +292,9 @@ message ContainerTermination {
 message ContainerLayers {
   // Paths of all layers used to provision the container.
   repeated string paths = 1;
+
+  // Path of docker manifest v2 schema2 config. If an image is
+  // downloaded via docker manifest v2s2, the config will be
+  // persisted in the image store.
+  optional string config = 2;
 }


[mesos] 02/03: Added docker manifest v2s2 config to 'ImageInfo'.

Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gilbert pushed a commit to branch 1.6.x
in repository https://gitbox.apache.org/repos/asf/mesos.git

commit 2e67ef1dd49ea23ef143ead491834c90505315b2
Author: Gilbert Song <so...@gmail.com>
AuthorDate: Mon Apr 15 19:10:35 2019 -0700

    Added docker manifest v2s2 config to 'ImageInfo'.
    
    (cherry picked from commit c009192158f583d95ecaee9e7555c380372fb18f)
---
 src/slave/containerizer/mesos/provisioner/store.hpp | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/slave/containerizer/mesos/provisioner/store.hpp b/src/slave/containerizer/mesos/provisioner/store.hpp
index a4ae00e..8ed4ebe 100644
--- a/src/slave/containerizer/mesos/provisioner/store.hpp
+++ b/src/slave/containerizer/mesos/provisioner/store.hpp
@@ -51,6 +51,9 @@ struct ImageInfo
 
   // Appc image manifest.
   Option<::appc::spec::ImageManifest> appcManifest;
+
+  // Path of docker manifest v2 schema2 config.
+  Option<std::string> config;
 };
 
 


[mesos] 03/03: Supported docker manifest v2s2 config with image GC.

Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gilbert pushed a commit to branch 1.6.x
in repository https://gitbox.apache.org/repos/asf/mesos.git

commit e8af5d07f3a0936afb221c988b93e8eb2c4b8590
Author: Gilbert Song <so...@gmail.com>
AuthorDate: Mon Apr 15 21:47:10 2019 -0700

    Supported docker manifest v2s2 config with image GC.
    
    After the docker manifest v2 schema2 support, the manifest config
    is saved as a layer in image store. However, the config file
    cannot survive if the image GC is triggered.
    
    This patch supports checkpointing the config path in provisioner,
    so that the provisioner has the information of configs so that
    they will not be deleted during GC.
    
    (cherry picked from commit cd75916020080232a27df4597f9de4dc2dc961d9)
---
 .../mesos/provisioner/docker/metadata_manager.cpp            |  4 ++++
 src/slave/containerizer/mesos/provisioner/docker/store.cpp   |  4 ++++
 src/slave/containerizer/mesos/provisioner/provisioner.cpp    | 12 ++++++++++++
 3 files changed, 20 insertions(+)

diff --git a/src/slave/containerizer/mesos/provisioner/docker/metadata_manager.cpp b/src/slave/containerizer/mesos/provisioner/docker/metadata_manager.cpp
index 516cada..17db6e6 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/metadata_manager.cpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/metadata_manager.cpp
@@ -201,6 +201,10 @@ Future<hashset<string>> MetadataManagerProcess::prune(
     foreach (const string& layerId, image->layer_ids()) {
       retainedLayers.insert(layerId);
     }
+
+    if (image->has_config_digest()) {
+      retainedLayers.insert(image->config_digest());
+    }
   }
 
   storedImages = std::move(retainedImages);
diff --git a/src/slave/containerizer/mesos/provisioner/docker/store.cpp b/src/slave/containerizer/mesos/provisioner/docker/store.cpp
index d4858c1..4e66eed 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/store.cpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/store.cpp
@@ -406,6 +406,10 @@ Future<ImageInfo> StoreProcess::__get(
         v1.error());
   }
 
+  if (image.has_config_digest()) {
+    return ImageInfo{layerPaths, v1.get(), None(), configPath};
+  }
+
   return ImageInfo{layerPaths, v1.get()};
 }
 
diff --git a/src/slave/containerizer/mesos/provisioner/provisioner.cpp b/src/slave/containerizer/mesos/provisioner/provisioner.cpp
index b3ed4ff..6b05198 100644
--- a/src/slave/containerizer/mesos/provisioner/provisioner.cpp
+++ b/src/slave/containerizer/mesos/provisioner/provisioner.cpp
@@ -442,6 +442,10 @@ Future<Nothing> ProvisionerProcess::recover(
             layers->paths().begin(),
             layers->paths().end(),
             std::back_inserter(info->layers.get()));
+
+        if (layers->has_config()) {
+          info->layers->push_back(layers->config());
+        }
       }
     }
 
@@ -556,6 +560,10 @@ Future<ProvisionInfo> ProvisionerProcess::_provision(
   infos[containerId]->rootfses[backend].insert(rootfsId);
   infos[containerId]->layers = imageInfo.layers;
 
+  if (imageInfo.config.isSome()) {
+    infos[containerId]->layers->push_back(imageInfo.config.get());
+  }
+
   string backendDir = provisioner::paths::getBackendDir(
       rootDir,
       containerId,
@@ -575,6 +583,10 @@ Future<ProvisionInfo> ProvisionerProcess::_provision(
         containerLayers.add_paths(layer);
       }
 
+      if (imageInfo.config.isSome()) {
+        containerLayers.set_config(imageInfo.config.get());
+      }
+
       Try<Nothing> checkpoint = slave::state::checkpoint(path, containerLayers);
       if (checkpoint.isError()) {
         return Failure(