Puppet Class: profile::query_service::wikidata

Defined in:
modules/profile/manifests/query_service/wikidata.pp

Overview

Class: profile::query_service::wikidata

This class defines a meta-class that pulls in all the query_service profiles necessary for a query service installation servicing the www.wikidata.org dataset.

This additionally provides a location for defining datasource specific configuration, such as if geo support is necessary. This kind of configuration doesn't end up fitting in hiera as we have multiple blazegraph instances per host (preventing configuration by profile), and multiple roles per datasource (preventing configuration by role).

Parameters:

  • username (String) (defaults to: lookup('profile::query_service::username'))
  • package_dir (Stdlib::Unixpath) (defaults to: lookup('profile::query_service::package_dir'))
  • data_dir (Stdlib::Unixpath) (defaults to: lookup('profile::query_service::data_dir'))
  • log_dir (Stdlib::Unixpath) (defaults to: lookup('profile::query_service::log_dir'))
  • deploy_name (String) (defaults to: lookup('profile::query_service::deploy_name'))
  • logstash_logback_port (Stdlib::Port) (defaults to: lookup('logstash_logback_port'))
  • heap_size (String) (defaults to: lookup('profile::query_service::blazegraph_heap_size', {'default_value' => '31g'}))
  • use_deployed_config (Boolean) (defaults to: lookup('profile::query_service::blazegraph_use_deployed_config', {'default_value' => false}))
  • options (Array[String]) (defaults to: lookup('profile::query_service::blazegraph_options'))
  • extra_jvm_opts (Array[String]) (defaults to: lookup('profile::query_service::blazegraph_extra_jvm_opts'))
  • prometheus_nodes (Array[String]) (defaults to: lookup('prometheus_nodes'))
  • contact_groups (String) (defaults to: lookup('contactgroups', {'default_value' => 'admins'}))
  • monitoring_enabled (Boolean) (defaults to: lookup('profile::query_service::blazegraph::monitoring_enabled', {'default_value' => false}))
  • sparql_query_stream (Optional[String]) (defaults to: lookup('profile::query_service::sparql_query_stream', {'default_value' => undef}))
  • event_service_endpoint (Optional[String]) (defaults to: lookup('profile::query_service::event_service_endpoint', {'default_value' => undef}))
  • federation_user_agent (String) (defaults to: lookup('profile::query_service::federation_user_agent'))
  • blazegraph_main_ns (String) (defaults to: lookup('profile::query_service::blazegraph_main_ns'))
  • updater_type (Enum['regular','streaming']) (defaults to: lookup('profile::query_service::updater_type', {'default_value' => 'regular'}))


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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
# File 'modules/profile/manifests/query_service/wikidata.pp', line 12

class profile::query_service::wikidata(
    String $username = lookup('profile::query_service::username'),
    Stdlib::Unixpath $package_dir = lookup('profile::query_service::package_dir'),
    Stdlib::Unixpath $data_dir = lookup('profile::query_service::data_dir'),
    Stdlib::Unixpath $log_dir = lookup('profile::query_service::log_dir'),
    String $deploy_name = lookup('profile::query_service::deploy_name'),
    Stdlib::Port $logstash_logback_port = lookup('logstash_logback_port'),
    String $heap_size = lookup('profile::query_service::blazegraph_heap_size', {'default_value' => '31g'}),
    Boolean $use_deployed_config = lookup('profile::query_service::blazegraph_use_deployed_config', {'default_value' => false}),
    Array[String] $options = lookup('profile::query_service::blazegraph_options'),
    Array[String] $extra_jvm_opts = lookup('profile::query_service::blazegraph_extra_jvm_opts'),
    Array[String] $prometheus_nodes = lookup('prometheus_nodes'),
    String $contact_groups = lookup('contactgroups', {'default_value' => 'admins'}),
    Boolean $monitoring_enabled = lookup('profile::query_service::blazegraph::monitoring_enabled', {'default_value' => false}),
    Optional[String] $sparql_query_stream = lookup('profile::query_service::sparql_query_stream', {'default_value' => undef}),
    Optional[String] $event_service_endpoint = lookup('profile::query_service::event_service_endpoint', {'default_value' => undef}),
    String $federation_user_agent = lookup('profile::query_service::federation_user_agent'),
    String $blazegraph_main_ns = lookup('profile::query_service::blazegraph_main_ns'),
    Enum['regular','streaming'] $updater_type = lookup('profile::query_service::updater_type', {'default_value' => 'regular'})
) {
    require ::profile::query_service::common
    case $updater_type {
        'regular': { require ::profile::query_service::updater }
        'streaming': { require ::profile::query_service::streaming_updater }
        default: { fail("Unsupported updater_type: ${updater_type}") }
    }
    require ::profile::query_service::gui

    $instance_name = "${deploy_name}-blazegraph"
    $blazegraph_port = 9999
    $prometheus_port = 9193
    $prometheus_agent_port = 9102

    profile::query_service::blazegraph { "${deploy_name}-blazegraph":
        journal                => 'wikidata',
        blazegraph_main_ns     => $blazegraph_main_ns,
        username               => $username,
        package_dir            => $package_dir,
        data_dir               => $data_dir,
        log_dir                => $log_dir,
        deploy_name            => $deploy_name,
        logstash_logback_port  => $logstash_logback_port,
        heap_size              => $heap_size,
        use_deployed_config    => $use_deployed_config,
        options                => $options,
        extra_jvm_opts         => $extra_jvm_opts,
        prometheus_nodes       => $prometheus_nodes,
        contact_groups         => $contact_groups,
        monitoring_enabled     => $monitoring_enabled,
        sparql_query_stream    => $sparql_query_stream,
        event_service_endpoint => $event_service_endpoint,
        blazegraph_port        => $blazegraph_port,
        prometheus_port        => $prometheus_port,
        prometheus_agent_port  => $prometheus_agent_port,
        config_file_name       => 'RWStore.wikidata.properties',
        prefixes_file          => 'prefixes.conf',
        use_geospatial         => true,
        federation_user_agent  => $federation_user_agent,
    }

    if ($monitoring_enabled) {
        class { '::profile::query_service::monitor::wikidata': }
    }
}