Puppet Class: mesos

Inherits:
::mesos::params
Inherited by:
mesos::cli
Defined in:
manifests/init.pp

Overview

Class: mesos

This module manages mesos installation

Examples

class{ 'mesos':
   zookeeper => ['192.168.1.1:2181', '192.168.1.1:2181'],
}

Parameters

[*ensure*]
 Package ensure present|absent

[*zookeeper*]
  An array of ZooKeeper ip's (with port) (will be converted to a zk url)

[*zookeeper_path*]
  Mesos namespace in ZooKeeper (last part of the zk:// URL, e.g. `zk://192.168.1.1/mesos`)

[*master*]
  If `zookeeper` is empty, master value is used

[*listen_address*]
  Could be a fact like `$::ipaddress` or explicit ip address (String).

[*single_role*]
  When enabled each machine is expected to run either master or slave service.

Authors

Tomas Barton <barton.tomas@gmail.com>

Copyright 2013-2018 Tomas Barton

Parameters:

  • ensure (String) (defaults to: 'present')
  • version (Optional[String]) (defaults to: undef)
  • log_dir (Optional[String]) (defaults to: undef)
  • conf_dir (String) (defaults to: '/etc/mesos')
  • conf_file (String) (defaults to: '/etc/default/mesos')
  • manage_zk_file (Boolean) (defaults to: true)
  • manage_service (Boolean) (defaults to: true)
  • zookeeper (Optional[Variant[String,Array[String]]]) (defaults to: [])
  • zk_path (String) (defaults to: 'mesos')
  • zk_default_port (Integer) (defaults to: 2181)
  • master (String) (defaults to: '127.0.0.1')
  • master_port (Integer) (defaults to: 5050)
  • owner (String) (defaults to: 'root')
  • group (String) (defaults to: 'root')
  • listen_address (Optional[String]) (defaults to: undef)
  • repo (Optional[Variant[String,Hash]]) (defaults to: 'mesosphere')
  • env_var (Hash) (defaults to: {})
  • ulimit (Integer) (defaults to: 8192)
  • manage_python (Boolean) (defaults to: false)
  • python_package (String) (defaults to: 'python')
  • force_provider (Optional[String]) (defaults to: undef)
  • use_hiera (Boolean) (defaults to: false)
  • single_role (Boolean) (defaults to: true)
  • service_provider (Optional[String]) (defaults to: $::mesos::params::service_provider)
  • manage_service_file (Boolean) (defaults to: $::mesos::params::manage_service_file)
  • systemd_path (String) (defaults to: $::mesos::params::systemd_path)


38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'manifests/init.pp', line 38

class mesos(
  String                                  $ensure              = 'present',
  # if version is not defined, ensure will be used
  Optional[String]                        $version = undef,
  # master and slave creates separate logs automatically
  # TODO: currently not used
  Optional[String]                        $log_dir = undef,
  String                                  $conf_dir            = '/etc/mesos',
  String                                  $conf_file           = '/etc/default/mesos',
  Boolean                                 $manage_zk_file      = true,
  Boolean                                 $manage_service      = true,
  Optional[Variant[String,Array[String]]] $zookeeper           = [],
  String                                  $zk_path             = 'mesos',
  Integer                                 $zk_default_port     = 2181,
  String                                  $master              = '127.0.0.1',
  Integer                                 $master_port         = 5050,
  String                                  $owner               = 'root',
  String                                  $group               = 'root',
  Optional[String]                        $listen_address      = undef,
  Optional[Variant[String,Hash]]          $repo                = 'mesosphere',
  Hash                                    $env_var             = {},
  Integer                                 $ulimit              = 8192,
  Boolean                                 $manage_python       = false,
  String                                  $python_package      = 'python',
  Optional[String]                        $force_provider      = undef, #temporary workaround for starting services
  Boolean                                 $use_hiera           = false,
  Boolean                                 $single_role         = true,
  Optional[String]                        $service_provider    = $::mesos::params::service_provider,
  Boolean                                 $manage_service_file = $::mesos::params::manage_service_file,
  String                                  $systemd_path        = $::mesos::params::systemd_path,
) inherits ::mesos::params {
  if !empty($zookeeper) {
    if is_string($zookeeper) {
      warning('\$zookeeper parameter should be an array of IP addresses, please update your configuration.')
    }
    $zookeeper_url = zookeeper_servers_url($zookeeper, $zk_path, $zk_default_port)
  } else {
    $zookeeper_url = undef
  }

  $mesos_ensure = $version ? {
    undef    => $ensure,
    default  => $version,
  }

  class {'mesos::install':
    ensure                  => $mesos_ensure,
    repo_source             => $repo,
    manage_python           => $manage_python,
    python_package          => $python_package,
    remove_package_services => $force_provider == 'none',
  }

  class {'mesos::config':
    log_dir        => $log_dir,
    conf_dir       => $conf_dir,
    conf_file      => $conf_file,
    manage_zk_file => $manage_zk_file,
    owner          => $owner,
    group          => $group,
    zookeeper_url  => $zookeeper_url,
    env_var        => $env_var,
    ulimit         => $ulimit,
    require        => Class['mesos::install']
  }

}