7f195ff9a8
This was mainly there as an legacy interface which was for internal use. Now that we pull the passwords from the existing environment and don't use it, we can drop this. Reduces a number of heat resources. Change-Id: If83d0f3d72a229d737a45b2fd37507dc11a04649
170 lines
6.0 KiB
YAML
170 lines
6.0 KiB
YAML
heat_template_version: rocky
|
|
|
|
description: >
|
|
Containerized logrotate with crond for containerized service logs rotation
|
|
|
|
parameters:
|
|
ContainerCrondImage:
|
|
description: image
|
|
type: string
|
|
ContainerCrondConfigImage:
|
|
description: The container image to use for the crond config_volume
|
|
type: string
|
|
EndpointMap:
|
|
default: {}
|
|
description: Mapping of service endpoint -> protocol. Typically set
|
|
via parameter_defaults in the resource registry.
|
|
type: json
|
|
ServiceData:
|
|
default: {}
|
|
description: Dictionary packing service data
|
|
type: json
|
|
ServiceNetMap:
|
|
default: {}
|
|
description: Mapping of service_name -> network name. Typically set
|
|
via parameter_defaults in the resource registry. This
|
|
mapping overrides those in ServiceNetMapDefaults.
|
|
type: json
|
|
RoleName:
|
|
default: ''
|
|
description: Role name on which the service is applied
|
|
type: string
|
|
RoleParameters:
|
|
default: {}
|
|
description: Parameters specific to the role
|
|
type: json
|
|
LogrotateMaxsize:
|
|
description: Configures the maxsize param for containerized logrotate.
|
|
type: string
|
|
default: '10M'
|
|
LogrotateRotationInterval:
|
|
description: Configures rotation interval for containerized logrotate.
|
|
type: string
|
|
default: 'daily'
|
|
constraints:
|
|
- allowed_values: [ 'hourly', 'daily', 'weekly', 'monthly' ]
|
|
LogrotateRotate:
|
|
description: Configures the rotate param for containerized logrotate.
|
|
type: string
|
|
default: '14'
|
|
LogrotatePurgeAfterDays:
|
|
description: Enforces life time (days) of rotated and compressed files.
|
|
type: string
|
|
default: '14'
|
|
LogrotateDateExt:
|
|
description: Enable/disable dateext parameter.
|
|
type: boolean
|
|
default: false
|
|
LogrotateDateFormat:
|
|
description: Configures dateformat strings for containerized logrotate.
|
|
This is valid when LogrotateDateExt is true.
|
|
The allowed specifiers are only %Y %m %d %H %M %S %V and %s.
|
|
type: string
|
|
default: '-%Y%m%d'
|
|
constraints:
|
|
- allowed_pattern: '-(%[YmdHMSVs])+$'
|
|
LogrotateDateYesterday:
|
|
description: Configures dateyesterday paramter for containerized logrotate.
|
|
This is valid when LogrotateDateExt is true.
|
|
type: boolean
|
|
default: false
|
|
|
|
conditions:
|
|
|
|
logrotatedateext_is_enabled: {equals: [{get_param: LogrotateDateExt}, true]}
|
|
|
|
|
|
resources:
|
|
|
|
ContainersCommon:
|
|
type: ../containers-common.yaml
|
|
outputs:
|
|
role_data:
|
|
description: Role data for the crond role.
|
|
value:
|
|
service_name: logrotate_crond
|
|
config_settings:
|
|
map_merge:
|
|
- tripleo::profile::base::logging::logrotate::maxsize: {get_param: LogrotateMaxsize}
|
|
tripleo::profile::base::logging::logrotate::rotation: {get_param: LogrotateRotationInterval}
|
|
tripleo::profile::base::logging::logrotate::rotate: {get_param: LogrotateRotate}
|
|
tripleo::profile::base::logging::logrotate::purge_after_days: {get_param: LogrotatePurgeAfterDays}
|
|
tripleo::profile::base::logging::logrotate::dateext: {get_param: LogrotateDateExt}
|
|
- if:
|
|
- logrotatedateext_is_enabled
|
|
- tripleo::profile::base::logging::logrotate::dateformat: {get_param: LogrotateDateFormat}
|
|
tripleo::profile::base::logging::logrotate::dateyesterday: {get_param: LogrotateDateYesterday}
|
|
- {}
|
|
host_prep_tasks:
|
|
- name: allow logrotate to read inside containers
|
|
seboolean:
|
|
name: logrotate_read_inside_containers
|
|
persistent: yes
|
|
state: yes
|
|
deploy_steps_tasks:
|
|
- name: configure tmpwatch on the host
|
|
when: step|int == 2
|
|
copy:
|
|
dest: /etc/cron.daily/containers-tmpwatch
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
content: |
|
|
#!/bin/sh
|
|
tmpwatch --nodirs \
|
|
-X "/var/log/containers/*/*log" \
|
|
-X "/var/log/containers/*/*/*log" \
|
|
-X "/var/log/containers/*/*err" \
|
|
{{ LogrotatePurgeAfterDays|int +1 }}d \
|
|
/var/log/containers/ 2>&1 | logger -t container-tmpwatch
|
|
vars:
|
|
LogrotatePurgeAfterDays: {get_param: LogrotatePurgeAfterDays}
|
|
# BEGIN DOCKER SETTINGS
|
|
puppet_config:
|
|
config_volume: crond
|
|
step_config: 'include tripleo::profile::base::logging::logrotate'
|
|
config_image: {get_param: ContainerCrondConfigImage}
|
|
kolla_config:
|
|
/var/lib/kolla/config_files/logrotate-crond.json:
|
|
command: /usr/sbin/crond -s -n
|
|
config_files:
|
|
- source: "/var/lib/kolla/config_files/src/*"
|
|
dest: "/"
|
|
merge: true
|
|
preserve_properties: true
|
|
docker_config:
|
|
step_4:
|
|
logrotate_crond:
|
|
image: {get_param: ContainerCrondImage}
|
|
net: none
|
|
pid: host
|
|
privileged: true
|
|
user: root
|
|
restart: always
|
|
healthcheck:
|
|
test: '/usr/share/openstack-tripleo-common/healthcheck/cron'
|
|
volumes:
|
|
list_concat:
|
|
- {get_attr: [ContainersCommon, volumes]}
|
|
-
|
|
- /var/lib/kolla/config_files/logrotate-crond.json:/var/lib/kolla/config_files/config.json:ro
|
|
- /var/lib/config-data/puppet-generated/crond:/var/lib/kolla/config_files/src:ro
|
|
- /var/log/containers:/var/log/containers:z
|
|
environment:
|
|
KOLLA_CONFIG_STRATEGY: COPY_ALWAYS
|
|
external_upgrade_tasks:
|
|
- when:
|
|
- step|int == 1
|
|
tags:
|
|
- never
|
|
- system_upgrade_transfer_data
|
|
- system_upgrade_stop_services
|
|
block:
|
|
- name: Stop logrotate container
|
|
import_role:
|
|
name: tripleo_container_stop
|
|
vars:
|
|
tripleo_containers_to_stop:
|
|
- logrotate_crond
|
|
tripleo_delegate_to: "{{ groups['logrotate_crond'] | default([]) }}"
|