Add keymaster middleware

Add support for configuring swift-proxy keymaster middleware. The
keymaster middleware handles keys for swift encryption[1].

[1] https://docs.openstack.org/swift/latest/overview_encryption.html

Change-Id: Ic6c34c5381eb4f57642493b5acf127dba4f7834e
This commit is contained in:
Jake Yip
2024-05-27 19:01:53 +10:00
committed by Takashi Kajinami
parent 140456e44a
commit 7f1a945550
3 changed files with 57 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
#
# Configure Swift Keymaster middleware.
#
# == Examples
#
# include swift::proxy::keymaster
#
# == Parameters
#
# [*encryption_root_secret*]
# Encryption root secret value.
#
class swift::proxy::keymaster (
$encryption_root_secret,
) {
include swift::deps
swift_proxy_config {
'filter:keymaster/use': value => 'egg:swift#keymaster';
'filter:keymaster/encryption_root_secret': value => $encryption_root_secret, secret => true;
}
}

View File

@@ -0,0 +1,5 @@
---
features:
- |
A new class ``swift::proxy::keymaster`` has been added. This supports the
configuration of swift-proxy keymaster middleware.

View File

@@ -0,0 +1,28 @@
require 'spec_helper'
describe 'swift::proxy::keymaster' do
shared_examples 'swift::proxy::keymaster' do
let :params do
{
:encryption_root_secret => 'secret',
}
end
context "when using default parameters" do
it { is_expected.to contain_swift_proxy_config('filter:keymaster/use').with_value('egg:swift#keymaster') }
it { is_expected.to contain_swift_proxy_config('filter:keymaster/encryption_root_secret').with_value('secret').with_secret(true) }
end
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge(OSDefaults.get_facts())
end
it_configures 'swift::proxy::keymaster'
end
end
end