Puppet Class: profile::query_service::categories

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

Overview

SPDX-License-Identifier: Apache-2.0

Class: profile::query_service::categories

This class defines a meta-class that pulls in all the query_service profiles necessary for a query service installation servicing the commons.wikimedia.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'))
  • use_deployed_config (Boolean) (defaults to: lookup('profile::query_service::blazegraph_use_deployed_config', {'default_value' => false}))
  • extra_jvm_opts (Array[String]) (defaults to: lookup('profile::query_service::blazegraph_extra_jvm_opts'))
  • contact_groups (String) (defaults to: lookup('contactgroups', {'default_value' => 'admins'}))
  • federation_user_agent (String) (defaults to: lookup('profile::query_service::federation_user_agent'))


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
# File 'modules/profile/manifests/query_service/categories.pp', line 13

class profile::query_service::categories(
    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'),
    Boolean $use_deployed_config = lookup('profile::query_service::blazegraph_use_deployed_config', {'default_value' => false}),
    Array[String] $extra_jvm_opts = lookup('profile::query_service::blazegraph_extra_jvm_opts'),
    String $contact_groups = lookup('contactgroups', {'default_value' => 'admins'}),
    String $federation_user_agent = lookup('profile::query_service::federation_user_agent'),
) {
    require ::profile::query_service::common
    include ::profile::query_service::monitor::categories

    $instance_name = "${deploy_name}-categories"
    $nginx_port = 80
    $blazegraph_port = 9990
    $prometheus_port = 9194
    $prometheus_agent_port = 9103

    profile::query_service::blazegraph { $instance_name:
        journal                => 'categories',
        # initial namespace for categories, this will not be used as importing
        # the categories should always create a new namespace suffixed with the
        # date and tracked in the aliases.map file
        blazegraph_main_ns     => 'categories',
        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              => '8g',
        use_deployed_config    => $use_deployed_config,
        extra_jvm_opts         => $extra_jvm_opts,
        contact_groups         => $contact_groups,
        monitoring_enabled     => true, # ????
        sparql_query_stream    => undef,
        event_service_endpoint => undef,
        nginx_port             => $nginx_port,
        blazegraph_port        => $blazegraph_port,
        prometheus_port        => $prometheus_port,
        prometheus_agent_port  => $prometheus_agent_port,
        config_file_name       => 'RWStore.categories.properties',
        prefixes_file          => 'prefixes.conf',
        use_geospatial         => false,
        use_oauth              => false,
        federation_user_agent  => $federation_user_agent,
    }
}