From ced7e27c1837df54beb4b3ef57813af349ae8f2e Mon Sep 17 00:00:00 2001 From: Sidharth Jawale Date: Wed, 26 Aug 2026 22:58:32 +0530 Subject: [PATCH] feat(rustdesk): add support for HAProxy domain expose and documentation - Add $expose and $domains parameters to common::software::rustdesk - Integrate role::web::haproxy domain management with confine validation - Update Puppet Strings documentation comments for new parameters Signed-off-by: Sidharth Jawale --- .../common/manifests/software/rustdesk.pp | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/modules/enableit/common/manifests/software/rustdesk.pp b/modules/enableit/common/manifests/software/rustdesk.pp index ae95d600..47eb925a 100644 --- a/modules/enableit/common/manifests/software/rustdesk.pp +++ b/modules/enableit/common/manifests/software/rustdesk.pp @@ -14,24 +14,42 @@ # # @param server_extra_dependencies Array[String] parameter to install OS specific dependencies. Defaults to []. # +# @param expose Whether to expose the service via HAProxy. Defaults to false. +# +# @param domains HAProxy domain configuration. Defaults to {}. +# # @groups management manage. # # @groups client client_enable, client_version, client_extra_dependencies. # # @groups server server_enable, server_version, server_extra_dependencies. # +# @groups networking expose, domains. class common::software::rustdesk ( - Boolean $manage = false, + Boolean $manage = false, + + Boolean $client_enable = false, + Array[String] $client_extra_dependencies = [], + Eit_types::Version $client_version = '1.4.3', - Boolean $client_enable = false, - Array[String] $client_extra_dependencies = [], - Eit_types::Version $client_version = '1.4.3', + Boolean $server_enable = false, + Array[String] $server_extra_dependencies = [], + Eit_types::Version $server_version = '1.7.1', - Boolean $server_enable = false, - Array[String] $server_extra_dependencies = [], - Eit_types::Version $server_version = '1.7.1', + Boolean $expose = false, + Eit_haproxy::Domains $domains = {}, ) { if $manage { include profile::software::rustdesk + + if $expose { + confine($expose, $domains.empty, 'Exposing rustdesk via HAProxy requires domains to be provided') + + class { 'role::web::haproxy': + domains => $domains, + version => '3.2.0', + encryption_ciphers => 'Intermediate', + } + } } }