diff --git a/REFERENCE.md b/REFERENCE.md
index b790216..b92a793 100644
--- a/REFERENCE.md
+++ b/REFERENCE.md
@@ -65,6 +65,7 @@ The following parameters are available in the `otelcol` class:
* [`metrics_address_host`](#-otelcol--metrics_address_host)
* [`metrics_address_port`](#-otelcol--metrics_address_port)
* [`service_ensure`](#-otelcol--service_ensure)
+* [`service_enable`](#-otelcol--service_enable)
* [`manage_service`](#-otelcol--manage_service)
* [`manage_archive`](#-otelcol--manage_archive)
* [`localpath_archive`](#-otelcol--localpath_archive)
@@ -240,6 +241,14 @@ Ensure for service
Default value: `'running'`
+##### `service_enable`
+
+Data type: `Boolean`
+
+Enable the service on boot
+
+Default value: `true`
+
##### `manage_service`
Data type: `Boolean`
diff --git a/manifests/init.pp b/manifests/init.pp
index c82893f..8a2b928 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -43,6 +43,8 @@
# Port metrics are listening to
# @param service_ensure
# Ensure for service
+# @param service_enable
+# Enable the service on boot
# @param manage_service
# If service is managed by module
# @param manage_archive
@@ -75,6 +77,7 @@
Optional[Stdlib::Host] $metrics_address_host = undef,
Stdlib::Port $metrics_address_port = 8888,
Stdlib::Ensure::Service $service_ensure = 'running',
+ Boolean $service_enable = true,
Boolean $manage_service = true,
Boolean $manage_archive = false,
String[1] $localpath_archive = '/tmp',
diff --git a/manifests/service.pp b/manifests/service.pp
index e492c7e..1753967 100644
--- a/manifests/service.pp
+++ b/manifests/service.pp
@@ -11,9 +11,13 @@
# @param ensure
# Ensure service status
#
+# @param enable
+# Enable service on boot
+#
# @api private
class otelcol::service (
Stdlib::Ensure::Service $ensure = $otelcol::service_ensure,
+ Boolean $enable = $otelcol::service_enable,
String $config_check_command = "${otelcol::service_name} validate --config=${otelcol::config_file}",
Boolean $config_check = $otelcol::service_configcheck,
) {
@@ -42,6 +46,7 @@
service { 'otelcol':
ensure => $ensure,
+ enable => $enable,
name => $otelcol::service_name,
require => $service_require,
subscribe => [Concat['otelcol-config'], File['otelcol-environment']],
diff --git a/spec/classes/otelcol_spec.rb b/spec/classes/otelcol_spec.rb
index 1302fa9..abda453 100644
--- a/spec/classes/otelcol_spec.rb
+++ b/spec/classes/otelcol_spec.rb
@@ -33,6 +33,7 @@
it {
is_expected.to contain_class('otelcol::service')
is_expected.to contain_service('otelcol').with_ensure('running').with_name('otelcol')
+ is_expected.to contain_service('otelcol').with_enable('true').with_name('otelcol')
}
end