Files
puppet-ironic/manifests/drivers/ipmi.pp
Takashi Kajinami fe9b82f80d Support customization of [ipmi] store_cred_in_env
Depends-on: https://review.opendev.org/917229
Change-Id: Ica6ef75948a3f1d60b3a564afed8f26447b13e8e
2024-07-24 23:33:46 +09:00

92 lines
3.5 KiB
Puppet

#
# Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
#
# Author: Emilien Macchi <emilien.macchi@enovance.com>
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# Configure the IPMI driver in Ironic
#
# === Parameters
#
# [*command_retry_timeout*]
# (optional) Maximum time in seconds to retry IPMI operations.
# Should be an integer value
# Defaults to $facts['os_service_default']
#
# [*min_command_interval*]
# (optional) Minimum time, in seconds, between IPMI operations.
# Should be an integer value
# Defaults to $facts['os_service_default']
#
# [*use_ipmitool_retries*]
# (optional) Whether the retry feature in ipmitool is used.
# Defaults to $facts['os_service_default']
#
# [*kill_on_timeout*]
# (optional) Kill ipmitool process when the timeout expires.
# Defaults to $facts['os_service_default']
#
# [*disable_boot_timeout*]
# (optional) Whether ironic sends a raw IPMI command to disable the 60 second
# timeout for booting.
# Defaults to $facts['os_service_default']
#
# [*additional_retryable_ipmi_errors*]
# (optional) Additional errors ipmitool may encounter, specific to
# the environment it is run in.
# Defaults to $facts['os_service_default']
#
# [*debug*]
# (optional) Enables debug outputs of IPMI commands
# Defaults to $facts['os_service_default']
#
# [*store_cred_in_env*]
# (optional) Store IPMI password in an environment variable instead of
# a file.
# Defaults to $facts['os_service_default']
#
# [*cipher_suite_versions*]
# (optional) List of possible cipher suites versions that can be supported
# by the hardware in case the field `cipher_suite` is not set for the node.
# Defaults to $facts['os_service_default']
#
class ironic::drivers::ipmi (
$command_retry_timeout = $facts['os_service_default'],
$min_command_interval = $facts['os_service_default'],
$use_ipmitool_retries = $facts['os_service_default'],
$kill_on_timeout = $facts['os_service_default'],
$disable_boot_timeout = $facts['os_service_default'],
$additional_retryable_ipmi_errors = $facts['os_service_default'],
$debug = $facts['os_service_default'],
$store_cred_in_env = $facts['os_service_default'],
$cipher_suite_versions = $facts['os_service_default'],
) {
include ironic::deps
# Configure ironic.conf
ironic_config {
'ipmi/command_retry_timeout': value => $command_retry_timeout;
'ipmi/min_command_interval': value => $min_command_interval;
'ipmi/use_ipmitool_retries': value => $use_ipmitool_retries;
'ipmi/kill_on_timeout': value => $kill_on_timeout;
'ipmi/disable_boot_timeout': value => $disable_boot_timeout;
'ipmi/additional_retryable_ipmi_errors': value => $additional_retryable_ipmi_errors;
'ipmi/debug': value => $debug;
'ipmi/store_cred_in_env': value => $store_cred_in_env;
'ipmi/cipher_suite_versions': value => join(any2array($cipher_suite_versions), ',');
}
}