Compare commits

..

4 commits

5 changed files with 56 additions and 57 deletions

12
.envrc
View file

@ -13,9 +13,17 @@ PATH_add bin
python3 -m pip --require-virtualenv --quiet install --upgrade pip wheel python3 -m pip --require-virtualenv --quiet install --upgrade pip wheel
python3 -m pip --require-virtualenv --quiet install --upgrade -r requirements.txt python3 -m pip --require-virtualenv --quiet install --upgrade -r requirements.txt
rm -rf .cache/bw/git_deploy # git deploy cache
export BW_GIT_DEPLOY_CACHE=.cache/bw/git_deploy export BW_GIT_DEPLOY_CACHE=".cache/bw/git_deploy"
CREATED_AT=$(stat -f "%Sa" "$BW_GIT_DEPLOY_CACHE" | xargs -I{} date -f '%b %d %H:%M:%S %Y' -j "{}" '+%s')
NOW_AT=$(date +%s)
SECONDS_SINCE=$(expr "$NOW_AT" - "$CREATED_AT")
if [[ "$SECONDS_SINCE" > 86400 ]]
then
rm -rf "$BW_GIT_DEPLOY_CACHE"
fi
mkdir -p "$BW_GIT_DEPLOY_CACHE" mkdir -p "$BW_GIT_DEPLOY_CACHE"
export EXPERIMENTAL_UPLOAD_VIA_CAT=1 export EXPERIMENTAL_UPLOAD_VIA_CAT=1
export BW_ITEM_WORKERS=32 export BW_ITEM_WORKERS=32
export BW_NODE_WORKERS=12 export BW_NODE_WORKERS=12

View file

@ -4,6 +4,7 @@ from shlex import quote
directories['/var/lib/influxdb'] = { directories['/var/lib/influxdb'] = {
'owner': 'influxdb', 'owner': 'influxdb',
'group': 'influxdb', 'group': 'influxdb',
'mode': '0750',
'needs': [ 'needs': [
'zfs_dataset:tank/influxdb', 'zfs_dataset:tank/influxdb',
], ],

View file

@ -1,58 +1,13 @@
size = node.metadata.get('systemd-swap')
actions = {
'stop_swap': {
'command': f'systemctl stop swapfile.swap',
'unless': f'! systemctl is-active swapfile.swap',
'triggered': True,
},
'remove_swapfile': {
'command': f'rm /swapfile',
'unless': f'! test -e /swapfile',
'triggered': True,
'needs': {
'action:stop_swap',
},
},
'create_swapfile': {
'command': f'fallocate -l {size} /swapfile',
'unless': f'stat -c %s /swapfile | grep ^{size}$',
'preceded_by': {
'action:stop_swap',
'action:remove_swapfile',
},
'triggers': {
'action:initialize_swapfile',
'svc_systemd:swapfile.swap:restart',
},
},
'swapfile_mode': {
'command': f'chmod 600 /swapfile',
'unless': f'stat -c "%a" /swapfile | grep -q "^600$"',
'needs': {
'action:create_swapfile',
},
'triggers': {
'svc_systemd:swapfile.swap:restart',
},
},
'initialize_swapfile': {
'command': f'mkswap /swapfile',
'triggered': True,
'needs': {
'action:swapfile_mode',
}
},
}
svc_systemd = { svc_systemd = {
'swapfile-prepare.service': {
'enabled': True,
'running': None,
},
'swapfile.swap': { 'swapfile.swap': {
'preceded_by': { 'enabled': True,
'action:initialize_swapfile', 'running': True,
}, 'needs': [
'needs': { 'svc_systemd:swapfile-prepare.service',
'action:initialize_swapfile', ],
'action:systemd-reload',
},
}, },
} }

View file

@ -10,3 +10,38 @@ defaults = {
}, },
}, },
} }
@metadata_reactor.provides(
'systemd/units/swapfile.swap',
)
def unit(metadata):
size = metadata.get('systemd-swap')
return {
'systemd': {
'units': {
'swapfile-prepare.service': {
'Unit': {
'Before': {
'swapfile.swap',
},
},
'Service': {
'Type': 'oneshot',
'ExecStartPre': [
'-/bin/rm /swapfile -f',
f'/bin/fallocate -l {size} /swapfile',
'/bin/chmod 600 /swapfile',
],
'ExecStart': '/usr/sbin/mkswap /swapfile',
},
'Install': {
'RequiredBy': {
'swapfile.swap',
},
},
},
},
},
}

View file

@ -13,7 +13,7 @@ template = '''
${option}=${k}=${v} ${option}=${k}=${v}
% endfor % endfor
% elif isinstance(value, (list, set, tuple)): % elif isinstance(value, (list, set, tuple)):
% for item in sorted(value): % for item in (sorted(value) if isinstance(value, set) else value):
${option}=${item} ${option}=${item}
% endfor % endfor
% elif isinstance(value, type(None)): % elif isinstance(value, type(None)):