2024-10-26 16:25:54 +02:00
|
|
|
defaults = {
|
|
|
|
'apt': {
|
|
|
|
'packages': {
|
|
|
|
'docker-ce': {},
|
|
|
|
'docker-ce-cli': {},
|
|
|
|
'docker-compose-plugin': {},
|
|
|
|
},
|
|
|
|
'repos': {
|
|
|
|
'docker': {
|
|
|
|
'items': {
|
|
|
|
'deb https://download.docker.com/linux/debian {os_release} stable',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
'backups': {
|
|
|
|
'paths': {
|
|
|
|
'/var/opt/docker-engine',
|
|
|
|
},
|
|
|
|
},
|
2025-02-15 10:32:56 +01:00
|
|
|
'nftables': {
|
|
|
|
'forward': {
|
|
|
|
'docker-engine': [
|
|
|
|
'ct state { related, established } accept',
|
2025-02-15 14:34:21 +01:00
|
|
|
'ip saddr 172.16.0.0/12 accept',
|
2025-02-15 10:32:56 +01:00
|
|
|
],
|
|
|
|
},
|
|
|
|
'postrouting': {
|
|
|
|
'docker-engine': [
|
2025-02-15 14:34:21 +01:00
|
|
|
'ip saddr 172.16.0.0/12 masquerade',
|
2025-02-15 10:32:56 +01:00
|
|
|
],
|
|
|
|
},
|
|
|
|
},
|
2024-10-26 16:25:54 +02:00
|
|
|
'docker-engine': {
|
|
|
|
'config': {
|
|
|
|
'iptables': False,
|
|
|
|
'no-new-privileges': True,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
'zfs': {
|
|
|
|
'datasets': {
|
|
|
|
'tank/docker-data': {
|
|
|
|
'mountpoint': '/var/opt/docker-engine',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
|
|
'icinga2_api/docker-engine/services',
|
|
|
|
)
|
|
|
|
def monitoring(metadata):
|
|
|
|
services = {
|
|
|
|
'DOCKER PROCESS': {
|
|
|
|
'command_on_monitored_host': '/usr/lib/nagios/plugins/check_procs -C dockerd -c 1:',
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
for app in metadata.get('docker-engine/containers', {}):
|
|
|
|
services[f'DOCKER CONTAINER {app}'] = {
|
|
|
|
'command_on_monitored_host': f'sudo /usr/local/share/icinga/plugins/check_docker_container {app}'
|
|
|
|
}
|
|
|
|
|
|
|
|
return {
|
|
|
|
'icinga2_api': {
|
|
|
|
'docker-engine': {
|
|
|
|
'services': services,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
|
|
'zfs/datasets',
|
|
|
|
)
|
|
|
|
def zfs(metadata):
|
|
|
|
datasets = {}
|
|
|
|
|
|
|
|
for app in metadata.get('docker-engine/containers', {}):
|
|
|
|
datasets[f'tank/docker-data/{app}'] = {
|
|
|
|
'mountpoint': f'/var/opt/docker-engine/{app}'
|
|
|
|
}
|
|
|
|
|
|
|
|
return {
|
|
|
|
'zfs': {
|
|
|
|
'datasets': datasets,
|
|
|
|
},
|
|
|
|
}
|