Skip to content

Commit

Permalink
Add kitchen test to validate logrotate configuration
Browse files Browse the repository at this point in the history
Add kitchen tests that checks if the overall logrotate configuration
is valid by triggering the `logrotate` command.

Signed-off-by: Jacopo De Amicis <[email protected]>
  • Loading branch information
jdeamicis committed May 29, 2024
1 parent a252e53 commit c387499
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 0 deletions.
41 changes: 41 additions & 0 deletions cookbooks/aws-parallelcluster-platform/kitchen.platform-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit c387499

Please sign in to comment.