feat: manage vault version (#446)

- add params for version and package name
- add param to cleanup openbao
- add version lock (if not latest)

Reviewed-on: #446
This commit is contained in:
Ben Vincent 2026-02-08 22:26:22 +11:00
parent 6bfc63ca31
commit 8c24c6582f
2 changed files with 32 additions and 2 deletions

View File

@ -5,8 +5,9 @@ profiles::vault::server::data_dir: /data/vault
profiles::vault::server::plugin_dir: /opt/openbao-plugins profiles::vault::server::plugin_dir: /opt/openbao-plugins
profiles::vault::server::manage_storage_dir: true profiles::vault::server::manage_storage_dir: true
profiles::vault::server::tls_disable: false profiles::vault::server::tls_disable: false
vault::package_name: openbao profiles::vault::server::package_name: openbao
vault::package_ensure: latest profiles::vault::server::package_ensure: 2.4.4
profiles::vault::server::disable_openbao: false
# additional altnames # additional altnames
profiles::pki::vault::alt_names: profiles::pki::vault::alt_names:

View File

@ -6,6 +6,9 @@ class profiles::vault::server (
Undef Undef
] $members_role = undef, ] $members_role = undef,
Array $vault_servers = [], Array $vault_servers = [],
String $package_name = 'vault',
String $package_ensure = 'latest',
Boolean $disable_openbao = true,
Boolean $tls_disable = false, Boolean $tls_disable = false,
Stdlib::Port $client_port = 8200, Stdlib::Port $client_port = 8200,
Stdlib::Port $cluster_port = 8201, Stdlib::Port $cluster_port = 8201,
@ -52,7 +55,33 @@ class profiles::vault::server (
} }
} }
# cleanup openbao?
if $disable_openbao {
package {'openbao':
ensure => absent,
before => Class['vault']
}
package {'openbao-vault-compat':
ensure => absent,
before => [
Class['vault'],
Package['openbao']
]
}
}
# add versionlock for package_name?
if $package_ensure != 'latest' {
yum::versionlock{$package_name:
ensure => present,
version => $package_ensure,
before => Class['vault']
}
}
class { 'vault': class { 'vault':
package_name => $package_name,
package_ensure => $package_ensure,
manage_service => false, manage_service => false,
manage_storage_dir => $manage_storage_dir, manage_storage_dir => $manage_storage_dir,
enable_ui => true, enable_ui => true,