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

qianzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git

commit 1fb79fefa4c28e0cf0be2686ee3d808dc30d2bfc
Author: Qian Zhang <zhq527...@gmail.com>
AuthorDate: Mon Aug 10 09:39:54 2020 +0800

    Enabled the `volume/csi` isolator in `MesosContainerizer`.
    
    Review: https://reviews.apache.org/r/72754
---
 src/slave/containerizer/containerizer.cpp       |  7 +++++--
 src/slave/containerizer/containerizer.hpp       |  4 +++-
 src/slave/containerizer/mesos/containerizer.cpp | 10 +++++++++-
 src/slave/containerizer/mesos/containerizer.hpp |  4 +++-
 4 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/src/slave/containerizer/containerizer.cpp 
b/src/slave/containerizer/containerizer.cpp
index 9e44e5e..ba3ab43 100644
--- a/src/slave/containerizer/containerizer.cpp
+++ b/src/slave/containerizer/containerizer.cpp
@@ -33,6 +33,7 @@
 
 #include "hook/manager.hpp"
 
+#include "slave/csi_server.hpp"
 #include "slave/flags.hpp"
 #include "slave/gc.hpp"
 #include "slave/slave.hpp"
@@ -220,7 +221,8 @@ Try<Containerizer*> Containerizer::create(
     GarbageCollector* gc,
     SecretResolver* secretResolver,
     VolumeGidManager* volumeGidManager,
-    PendingFutureTracker* futureTracker)
+    PendingFutureTracker* futureTracker,
+    CSIServer* csiServer)
 {
   // Get the set of containerizer types.
   const vector<string> _types = strings::split(flags.containerizers, ",");
@@ -297,7 +299,8 @@ Try<Containerizer*> Containerizer::create(
           secretResolver,
           nvidia,
           volumeGidManager,
-          futureTracker);
+          futureTracker,
+          csiServer);
 
       if (containerizer.isError()) {
         return Error("Could not create MesosContainerizer: " +
diff --git a/src/slave/containerizer/containerizer.hpp 
b/src/slave/containerizer/containerizer.hpp
index 2b3c4c0..691fdfe 100644
--- a/src/slave/containerizer/containerizer.hpp
+++ b/src/slave/containerizer/containerizer.hpp
@@ -38,6 +38,7 @@
 
 #include "common/future_tracker.hpp"
 
+#include "slave/csi_server.hpp"
 #include "slave/gc.hpp"
 
 #include "slave/volume_gid_manager/volume_gid_manager.hpp"
@@ -78,7 +79,8 @@ public:
       GarbageCollector* gc,
       SecretResolver* secretResolver = nullptr,
       VolumeGidManager* volumeGidManager = nullptr,
-      PendingFutureTracker* futureTracker = nullptr);
+      PendingFutureTracker* futureTracker = nullptr,
+      CSIServer* csiServer = nullptr);
 
   // Determine slave resources from flags, probing the system or
   // querying a delegate.
diff --git a/src/slave/containerizer/mesos/containerizer.cpp 
b/src/slave/containerizer/mesos/containerizer.cpp
index 3c1840c..31d45a0 100644
--- a/src/slave/containerizer/mesos/containerizer.cpp
+++ b/src/slave/containerizer/mesos/containerizer.cpp
@@ -61,6 +61,7 @@
 
 #include "module/manager.hpp"
 
+#include "slave/csi_server.hpp"
 #include "slave/gc.hpp"
 #include "slave/paths.hpp"
 #include "slave/slave.hpp"
@@ -114,6 +115,7 @@
 #include "slave/containerizer/mesos/isolators/volume/host_path.hpp"
 #include "slave/containerizer/mesos/isolators/volume/image.hpp"
 #include "slave/containerizer/mesos/isolators/volume/secret.hpp"
+#include "slave/containerizer/mesos/isolators/volume/csi/isolator.hpp"
 #endif // __linux__
 
 #if ENABLE_SECCOMP_ISOLATOR
@@ -180,7 +182,8 @@ Try<MesosContainerizer*> MesosContainerizer::create(
     SecretResolver* secretResolver,
     const Option<NvidiaComponents>& nvidia,
     VolumeGidManager* volumeGidManager,
-    PendingFutureTracker* futureTracker)
+    PendingFutureTracker* futureTracker,
+    CSIServer* csiServer)
 {
   Try<hashset<string>> isolations = [&flags]() -> Try<hashset<string>> {
     const vector<string> tokens(strings::tokenize(flags.isolation, ","));
@@ -467,6 +470,11 @@ Try<MesosContainerizer*> MesosContainerizer::create(
       [secretResolver] (const Flags& flags) -> Try<Isolator*> {
         return VolumeSecretIsolatorProcess::create(flags, secretResolver);
       }},
+
+    {"volume/csi",
+      [csiServer] (const Flags& flags) -> Try<Isolator*> {
+        return VolumeCSIIsolatorProcess::create(flags, csiServer);
+      }},
 #endif // __linux__
 
     // Disk isolators.
diff --git a/src/slave/containerizer/mesos/containerizer.hpp 
b/src/slave/containerizer/mesos/containerizer.hpp
index 56e4c49..62174df 100644
--- a/src/slave/containerizer/mesos/containerizer.hpp
+++ b/src/slave/containerizer/mesos/containerizer.hpp
@@ -36,6 +36,7 @@
 #include <stout/multihashmap.hpp>
 #include <stout/os/int_fd.hpp>
 
+#include "slave/csi_server.hpp"
 #include "slave/gc.hpp"
 #include "slave/state.hpp"
 
@@ -75,7 +76,8 @@ public:
       SecretResolver* secretResolver = nullptr,
       const Option<NvidiaComponents>& nvidia = None(),
       VolumeGidManager* volumeGidManager = nullptr,
-      PendingFutureTracker* futureTracker = nullptr);
+      PendingFutureTracker* futureTracker = nullptr,
+      CSIServer* csiServer = nullptr);
 
   static Try<MesosContainerizer*> create(
       const Flags& flags,

Reply via email to