You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by qi...@apache.org on 2017/08/03 07:49:45 UTC
[6/9] mesos git commit: Passed default container DNS info to Docker
executor.
Passed default container DNS info to Docker executor.
Review: https://reviews.apache.org/r/60557
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/48b5ef03
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/48b5ef03
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/48b5ef03
Branch: refs/heads/master
Commit: 48b5ef036905ae5a112af26ab6985953f8179c8c
Parents: ebfccf4
Author: Qian Zhang <zh...@gmail.com>
Authored: Wed Jun 28 22:26:02 2017 +0800
Committer: Qian Zhang <zh...@gmail.com>
Committed: Thu Aug 3 13:53:26 2017 +0800
----------------------------------------------------------------------
src/docker/executor.cpp | 21 +++++++++++++++++++++
src/docker/executor.hpp | 5 +++++
src/slave/containerizer/docker.cpp | 6 ++++++
3 files changed, 32 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/48b5ef03/src/docker/executor.cpp
----------------------------------------------------------------------
diff --git a/src/docker/executor.cpp b/src/docker/executor.cpp
index e03f244..a14ac7d 100644
--- a/src/docker/executor.cpp
+++ b/src/docker/executor.cpp
@@ -50,6 +50,7 @@
#include "logging/flags.hpp"
#include "logging/logging.hpp"
+#include "messages/flags.hpp"
#include "messages/messages.hpp"
#include "slave/constants.hpp"
@@ -87,6 +88,7 @@ public:
const Duration& shutdownGracePeriod,
const string& launcherDir,
const map<string, string>& taskEnvironment,
+ const Option<ContainerDNSInfo>& defaultContainerDNS,
bool cgroupsEnableCfs)
: ProcessBase(ID::generate("docker-executor")),
killed(false),
@@ -99,6 +101,7 @@ public:
mappedDirectory(mappedDirectory),
shutdownGracePeriod(shutdownGracePeriod),
taskEnvironment(taskEnvironment),
+ defaultContainerDNS(defaultContainerDNS),
cgroupsEnableCfs(cgroupsEnableCfs),
stop(Nothing()),
inspect(Nothing()) {}
@@ -605,6 +608,7 @@ private:
string mappedDirectory;
Duration shutdownGracePeriod;
map<string, string> taskEnvironment;
+ Option<ContainerDNSInfo> defaultContainerDNS;
bool cgroupsEnableCfs;
Option<KillPolicy> killPolicy;
@@ -631,6 +635,7 @@ public:
const Duration& shutdownGracePeriod,
const string& launcherDir,
const map<string, string>& taskEnvironment,
+ const Option<ContainerDNSInfo>& defaultContainerDNS,
bool cgroupsEnableCfs)
{
process = Owned<DockerExecutorProcess>(new DockerExecutorProcess(
@@ -641,6 +646,7 @@ public:
shutdownGracePeriod,
launcherDir,
taskEnvironment,
+ defaultContainerDNS,
cgroupsEnableCfs));
spawn(process.get());
@@ -793,6 +799,20 @@ int main(int argc, char** argv)
}
}
+ Option<mesos::internal::ContainerDNSInfo> defaultContainerDNS;
+ if (flags.default_container_dns.isSome()) {
+ Try<mesos::internal::ContainerDNSInfo> parse =
+ flags::parse<mesos::internal::ContainerDNSInfo>(
+ flags.default_container_dns.get());
+
+ if (parse.isError()) {
+ EXIT(EXIT_FAILURE) << flags.usage(
+ "Failed to parse --default_container_dns: " + parse.error());
+ }
+
+ defaultContainerDNS = parse.get();
+ }
+
// Get executor shutdown grace period from the environment.
//
// NOTE: We avoided introducing a docker executor flag for this
@@ -847,6 +867,7 @@ int main(int argc, char** argv)
shutdownGracePeriod,
flags.launcher_dir.get(),
taskEnvironment,
+ defaultContainerDNS,
flags.cgroups_enable_cfs));
Owned<mesos::MesosExecutorDriver> driver(
http://git-wip-us.apache.org/repos/asf/mesos/blob/48b5ef03/src/docker/executor.hpp
----------------------------------------------------------------------
diff --git a/src/docker/executor.hpp b/src/docker/executor.hpp
index a4a8ec9..f21e84c 100644
--- a/src/docker/executor.hpp
+++ b/src/docker/executor.hpp
@@ -76,6 +76,10 @@ struct Flags : public virtual mesos::internal::logging::Flags
"A JSON map of environment variables and values that should\n"
"be passed into the task launched by this executor.");
+ add(&Flags::default_container_dns,
+ "default_container_dns",
+ "JSON-formatted default DNS information for container.");
+
add(&Flags::cgroups_enable_cfs,
"cgroups_enable_cfs",
"Cgroups feature flag to enable hard limits on CPU resources\n"
@@ -90,6 +94,7 @@ struct Flags : public virtual mesos::internal::logging::Flags
Option<std::string> mapped_directory;
Option<std::string> launcher_dir;
Option<std::string> task_environment;
+ Option<std::string> default_container_dns;
bool cgroups_enable_cfs;
http://git-wip-us.apache.org/repos/asf/mesos/blob/48b5ef03/src/slave/containerizer/docker.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/docker.cpp b/src/slave/containerizer/docker.cpp
index 2fe9227..fee1e10 100644
--- a/src/slave/containerizer/docker.cpp
+++ b/src/slave/containerizer/docker.cpp
@@ -39,6 +39,7 @@
#include <stout/jsonify.hpp>
#include <stout/os.hpp>
#include <stout/path.hpp>
+#include <stout/protobuf.hpp>
#include <stout/uuid.hpp>
#include <stout/os/killtree.hpp>
@@ -258,6 +259,11 @@ DockerContainerizer::~DockerContainerizer()
dockerFlags.task_environment = string(jsonify(taskEnvironment.get()));
}
+ if (flags.default_container_dns.isSome()) {
+ dockerFlags.default_container_dns =
+ string(jsonify(JSON::Protobuf(flags.default_container_dns.get())));
+ }
+
#ifdef __linux__
dockerFlags.cgroups_enable_cfs = flags.cgroups_enable_cfs,
#endif