diff --git a/cookbooks/aws-parallelcluster-platform/kitchen.platform-config.yml b/cookbooks/aws-parallelcluster-platform/kitchen.platform-config.yml index edf84fb968..b69a2d9e41 100644 --- a/cookbooks/aws-parallelcluster-platform/kitchen.platform-config.yml +++ b/cookbooks/aws-parallelcluster-platform/kitchen.platform-config.yml @@ -143,6 +143,47 @@ suites: attributes: cluster: node_type: HeadNode + - name: log_rotation_head_node + run_list: + - recipe[aws-parallelcluster-platform::log_rotation] + verifier: + controls: + - /tag:config_log_rotation_all_nodes/ + attributes: + # Add attributes so that all possible logrotate configuration files are generated + cluster: + log_rotation_enabled: 'true' + node_type: 'HeadNode' + dcv_enabled: "head_node" + directory_service: + generate_ssh_keys_for_users: 'true' + scheduler: 'slurm' + - name: log_rotation_compute_fleet + run_list: + - recipe[aws-parallelcluster-platform::log_rotation] + verifier: + controls: + - /tag:config_log_rotation_all_nodes/ + attributes: + # Add attributes so that all possible logrotate configuration files are generated + cluster: + log_rotation_enabled: 'true' + node_type: 'ComputeFleet' + scheduler: 'slurm' + - name: log_rotation_login_node + run_list: + - recipe[aws-parallelcluster-platform::log_rotation] + verifier: + controls: + - /tag:config_log_rotation_all_nodes/ + attributes: + # Add attributes so that all possible logrotate configuration files are generated + cluster: + log_rotation_enabled: 'true' + node_type: 'LoginNode' + directory_service: + generate_ssh_keys_for_users: 'true' + scheduler: 'slurm' - name: networking run_list: - recipe[aws-parallelcluster-platform::networking] diff --git a/cookbooks/aws-parallelcluster-platform/test/controls/log_rotation_all_nodes.rb b/cookbooks/aws-parallelcluster-platform/test/controls/log_rotation_all_nodes.rb new file mode 100644 index 0000000000..fbed31c467 --- /dev/null +++ b/cookbooks/aws-parallelcluster-platform/test/controls/log_rotation_all_nodes.rb @@ -0,0 +1,24 @@ +# Copyright:: 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). +# You may not use this file except in compliance with the License. A copy of the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "LICENSE.txt" file accompanying this file. +# This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied. +# See the License for the specific language governing permissions and limitations under the License. + +# This control is generic enough to be applied to all types of nodes in ParallelCluster +control 'tag:config_log_rotation_all_nodes' do + title 'Check that log rotation has been properly configured' + + # This should be enough at least to verify that the logrotate overall configuration is valid. + # WARNING: do not use the `--force` option, because running multiple times the command with the + # `--force` option will cause the command to fail (defeating the purpose of the test) + describe "Log rotation command runs successfully" do + subject { command("sudo logrotate /etc/logrotate.conf") } + its('exit_status') { should eq 0 } + end + +end