diff --git a/REFERENCE.md b/REFERENCE.md
index a133f9dc2..4a398e703 100644
--- a/REFERENCE.md
+++ b/REFERENCE.md
@@ -1211,19 +1211,19 @@ Default value: `undef`
##### `track_file`
-Data type: `Optional[Array[String[1]]]`
+Data type: `Array[String[1]]`
Define which file trackers to run. References a track_file block that can be created with keepalived::vrrp::track_file.
-Default value: `undef`
+Default value: `[]`
##### `vrrp_track_file`
-Data type: `Optional[Array[String[1]]]`
+Data type: `Array[String[1]]`
Define which file trackers to run. Deprecated, for keepalived < 2.1.0. References a vrrp_track_file block that can be created with keepalived::vrrp::vrrp_track_file.
-Default value: `undef`
+Default value: `[]`
##### `track_interface`
diff --git a/manifests/vrrp/instance.pp b/manifests/vrrp/instance.pp
index d54b4a5f6..686ae977e 100644
--- a/manifests/vrrp/instance.pp
+++ b/manifests/vrrp/instance.pp
@@ -207,8 +207,8 @@
Optional[Variant[String, Sensitive[String]]] $auth_pass = undef,
$track_script = undef,
Optional[Array[String[1]]] $track_process = undef,
- Optional[Array[String[1]]] $track_file = undef,
- Optional[Array[String[1]]] $vrrp_track_file = undef,
+ Array[String[1]] $track_file = [],
+ Array[String[1]] $vrrp_track_file = [],
$track_interface = undef,
$lvs_interface = undef,
$virtual_ipaddress_int = undef,
diff --git a/templates/vrrp_instance.erb b/templates/vrrp_instance.erb
index 48e008b9f..eb1d6f6bc 100644
--- a/templates/vrrp_instance.erb
+++ b/templates/vrrp_instance.erb
@@ -113,18 +113,18 @@ vrrp_instance <%= @_name %> {
<%- end -%>
}
<%- end -%>
- <%- if @track_file -%>
+ <%- unless @track_file.empty? -%>
track_file {
- <%- Array(@track_file).each do |track| -%>
+ <%- @track_file.each do |track| -%>
<%= track %>
<%- end -%>
}
<%- end -%>
- <%- if @vrrp_track_file -%>
+ <%- unless @vrrp_track_file.empty? -%>
vrrp_track_file {
- <%- Array(@vrrp_track_file).each do |track| -%>
+ <%- @vrrp_track_file.each do |track| -%>
<%= track %>
<%- end -%>
}