Files
puppet-ironic/manifests/vnc.pp
Takashi Kajinami 3eac2ca560 Validate ensure parameter for package resources
The minimum version of puppetlabs-stdlib has been bumped globally, so
now we can use the common type definition.

Change-Id: Id05e7d78967eac898ddf8fe5f66d58722cbe7ace
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-09-23 18:15:47 +09:00

139 lines
5.1 KiB
Puppet

# Configure the ironic-novncproxy service
#
# === Parameters
#
# [*package_ensure*]
# (optional) Control the ensure parameter for the package resource.
# Defaults to 'present'.
#
# [*enabled*]
# (optional) Define if the service must be enabled or not.
# Defaults to true.
#
# [*manage_service*]
# (optional) Whether the service should be managed by Puppet.
# Defaults to true.
#
# [*host_ip*]
# (optional) The IP address or hostname on which ironic-novncproxy listens.
# Defaults to $facts['os_service_default']
#
# [*port*]
# (optional) The TCP port on which ironic-novncproxy listens.
# Defaults to $facts['os_service_default']
#
# [*public_url*]
# (optional) Public URL to use when building the links to the noVNC client
# browser page.
# Defaults to $facts['os_service_default']
#
# [*enable_ssl*]
# (optional) Enable the integrated stand-alone noVNC to service requests via
# HTTPS instead of HTTP
# Defaults to $facts['os_service_default']
#
# [*novnc_web*]
# (optional) Path to directory with content which will be served by a web
# server.
# Defaults to $facts['os_service_default']
#
# [*novnc_record*]
# (optional) Filename that will be used for storing websocket frames received
# and sent by a VNC proxy service running on this host.
# Defaults to $facts['os_service_default']
#
# [*novnc_auth_schemes*]
# (optional) The allowed authentication schemes to use with proxied VNC
# console
# Defaults to $facts['os_service_default']
#
# [*token_timeout*]
# (optional) The lifetime of a console auth token (in seconds).
# Defaults to $facts['os_service_default']
#
# [*expire_console_session_interval*]
# (optional) Interval (in seconds) between periodic checks to determine
# whether active console sessions have expired and need to be closed.
# Defaults to $facts['os_service_default']
#
# [*ssl_cert_file*]
# (optional) Certificate file to use when starting the server securely.
# Defaults to $facts['os_service_default']
#
# [*ssl_key_file*]
# (optional) Private key file to use when starting the server securely.
# Defaults to $facts['os_service_default']
#
# [*ssl_minimum_version*]
# (optional) The minimum SSL version to use.
# Defaults to $facts['os_service_default']
#
# [*ssl_ciphers*]
# (optional) List of available ciphers.
# Defaults to $facts['os_service_default']
#
class ironic::vnc (
Stdlib::Ensure::Package $package_ensure = present,
Boolean $enabled = true,
Boolean $manage_service = true,
$host_ip = $facts['os_service_default'],
$port = $facts['os_service_default'],
$public_url = $facts['os_service_default'],
$enable_ssl = $facts['os_service_default'],
$novnc_web = $facts['os_service_default'],
$novnc_record = $facts['os_service_default'],
$novnc_auth_schemes = $facts['os_service_default'],
$token_timeout = $facts['os_service_default'],
$expire_console_session_interval = $facts['os_service_default'],
$ssl_cert_file = $facts['os_service_default'],
$ssl_key_file = $facts['os_service_default'],
$ssl_minimum_version = $facts['os_service_default'],
$ssl_ciphers = $facts['os_service_default'],
) inherits ironic::params {
include ironic::deps
ironic_config {
'vnc/enabled': value => $enabled;
'vnc/host_ip': value => $host_ip;
'vnc/port': value => $port;
'vnc/public_url': value => $public_url;
'vnc/enable_ssl': value => $enable_ssl;
'vnc/novnc_web': value => $novnc_web;
'vnc/novnc_record': value => $novnc_record;
'vnc/novnc_auth_schemes': value => join(any2array($novnc_auth_schemes), ',');
'vnc/token_timeout': value => $token_timeout;
'vnc/expire_console_session_interval': value => $expire_console_session_interval;
'vnc/ssl_cert_file': value => $ssl_cert_file;
'vnc/ssl_key_file': value => $ssl_key_file;
'vnc/ssl_minimum_version': value => $ssl_minimum_version;
'vnc/ssl_ciphers': value => join(any2array($ssl_ciphers), ':');
}
if $ironic::params::novncproxy_package {
package { 'ironic-novncproxy':
ensure => $package_ensure,
name => $ironic::params::novncproxy_package,
tag => ['openstack', 'ironic-package'],
}
}
if $ironic::params::novncproxy_service {
if $manage_service {
if $enabled {
$ensure = 'running'
} else {
$ensure = 'stopped'
}
# Manage service
service { 'ironic-novncproxy':
ensure => $ensure,
name => $ironic::params::novncproxy_service,
enable => $enabled,
hasstatus => true,
tag => 'ironic-service',
}
}
}
}