From 3c8d7123003f36267065e14b710d3751ecdae41c Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Sun, 24 Dec 2023 23:24:27 +0900 Subject: [PATCH] Test deployment with ceilometermiddleware Depends-on: https://review.opendev.org/916622 Change-Id: I0057dbe98a48b7d3f3a359efadebcf2cd94a46a2 --- fixtures/scenario002.pp | 4 ++- manifests/swift.pp | 54 ++++++++++++++++++++++++++++++++++------- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/fixtures/scenario002.pp b/fixtures/scenario002.pp index d8a68eb20..f38eefb9e 100644 --- a/fixtures/scenario002.pp +++ b/fixtures/scenario002.pp @@ -66,7 +66,9 @@ class { 'openstack_integration::neutron': baremetal_enabled => true, metering_enabled => true, } -include openstack_integration::swift +class { 'openstack_integration::swift': + ceilometer_enabled => true, +} class { 'openstack_integration::ironic': inspector_backend => 'swift', send_power_notifications => true, diff --git a/manifests/swift.pp b/manifests/swift.pp index 89fd12c56..211f1cf63 100644 --- a/manifests/swift.pp +++ b/manifests/swift.pp @@ -1,4 +1,12 @@ -class openstack_integration::swift { +# Configure the swift service +# +# [*ceilometer_enabled*] +# (Optional) Enable the ceilometer middleware +# Defaults to false +# +class openstack_integration::swift( + $ceilometer_enabled = false +){ include openstack_integration::config @@ -46,17 +54,45 @@ class openstack_integration::swift { swift_hash_path_suffix => 'secrete', } + if $ceilometer_enabled { + openstack_integration::mq_user { 'swift': + password => 'an_even_bigger_secret', + before => Anchor['swift::service::begin'], + } + + class { 'swift::proxy::ceilometer': + auth_url => $::openstack_integration::config::keystone_admin_uri, + password => 'a_big_secret', + default_transport_url => os_transport_url({ + 'transport' => $::openstack_integration::config::messaging_default_proto, + 'host' => $::openstack_integration::config::host, + 'port' => $::openstack_integration::config::messaging_default_port, + 'username' => 'swift', + 'password' => 'an_even_bigger_secret', + }), + rabbit_use_ssl => $::openstack_integration::config::ssl, + } + $ceilometer_middleware = ['ceilometer'] + + # NOTE(tkajinam): ceilometermiddleware needs to query keystone api when + # proxy-server starts so ensure the keystone account is already created. + Keystone::Resource::Service_identity['swift'] -> Service['swift-proxy-server'] + } else { + $ceilometer_middleware = [] + } + + $pipeline = [ + 'catch_errors', 'gatekeeper', 'healthcheck', 'proxy-logging', 'cache', + 'listing_formats', 'container_sync', 'bulk', 'tempurl', 'ratelimit', + 'authtoken', 'keystone', 'copy', 'formpost', 'staticweb', 'container_quotas', + 'account_quotas', 'slo', 'dlo', 'versioned_writes', 'symlink', 'proxy-logging' + ] + $ceilometer_middleware + ['proxy-server'] + # proxy server class { 'swift::proxy': proxy_local_net_ip => $::openstack_integration::config::host, workers => 2, - pipeline => [ - 'catch_errors', 'gatekeeper', 'healthcheck', 'proxy-logging', 'cache', - 'listing_formats', 'container_sync', 'bulk', 'tempurl', 'ratelimit', - 'authtoken', 'keystone', 'copy', 'formpost', 'staticweb', 'container_quotas', - 'account_quotas', 'slo', 'dlo', 'versioned_writes', 'symlink', - 'proxy-logging', 'proxy-server' - ], + pipeline => $pipeline, node_timeout => 30, } include swift::proxy::catch_errors @@ -73,7 +109,7 @@ class openstack_integration::swift { include swift::proxy::ratelimit class { 'swift::proxy::authtoken': www_authenticate_uri => "${::openstack_integration::config::keystone_auth_uri}/v3", - auth_url => "${::openstack_integration::config::keystone_admin_uri}/", + auth_url => $::openstack_integration::config::keystone_admin_uri, password => 'a_big_secret', service_token_roles_required => true, }