chore: remove build-agent, build-ci and lonercrew
build-agent is no longer needed for local static builds; the ci strategy had no repo configured, and lonercrew, its only user, is not deployed on any node. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RywMtsL8qXG7GDY3MHq9Uh
This commit is contained in:
parent
3f487fd52b
commit
2375078c37
10 changed files with 0 additions and 174 deletions
|
|
@ -1,38 +0,0 @@
|
||||||
defaults = {
|
|
||||||
'apt': {
|
|
||||||
'packages': {
|
|
||||||
'build-essential': {},
|
|
||||||
# crystal
|
|
||||||
'clang': {},
|
|
||||||
'libssl-dev': {},
|
|
||||||
'libpcre3-dev': {},
|
|
||||||
'libgc-dev': {},
|
|
||||||
'libevent-dev': {},
|
|
||||||
'zlib1g-dev': {},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
'users': {
|
|
||||||
'build-agent': {
|
|
||||||
'home': '/var/lib/build-agent',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@metadata_reactor.provides(
|
|
||||||
'users/build-agent/authorized_users',
|
|
||||||
)
|
|
||||||
def ssh_keys(metadata):
|
|
||||||
return {
|
|
||||||
'users': {
|
|
||||||
'build-agent': {
|
|
||||||
'authorized_users': {
|
|
||||||
f'build-server@{other_node.name}': {}
|
|
||||||
for other_node in repo.nodes
|
|
||||||
if other_node.has_bundle('build-server')
|
|
||||||
for architecture in other_node.metadata.get('build-server/architectures').values()
|
|
||||||
if architecture['node'] == node.name
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
for project, options in node.metadata.get('build-ci').items():
|
|
||||||
directories[options['path']] = {
|
|
||||||
'owner': 'build-ci',
|
|
||||||
'group': options['group'],
|
|
||||||
'mode': '770',
|
|
||||||
'needs': [
|
|
||||||
'user:build-ci',
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
from shlex import quote
|
|
||||||
|
|
||||||
|
|
||||||
defaults = {
|
|
||||||
'build-ci': {},
|
|
||||||
}
|
|
||||||
|
|
||||||
@metadata_reactor.provides(
|
|
||||||
'users/build-ci/authorized_users',
|
|
||||||
'sudoers/build-ci',
|
|
||||||
)
|
|
||||||
def ssh_keys(metadata):
|
|
||||||
return {
|
|
||||||
'users': {
|
|
||||||
'build-ci': {
|
|
||||||
'authorized_users': {
|
|
||||||
f'build-server@{other_node.name}': {}
|
|
||||||
for other_node in repo.nodes
|
|
||||||
if other_node.has_bundle('build-server')
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
'sudoers': {
|
|
||||||
'build-ci': {
|
|
||||||
f"/usr/bin/chown -R build-ci\\:{quote(ci['group'])} {quote(ci['path'])}"
|
|
||||||
for ci in metadata.get('build-ci').values()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -xu
|
|
||||||
|
|
||||||
|
|
||||||
CONFIG_PATH=${config_path}
|
|
||||||
JSON="$1"
|
|
||||||
REPO_NAME=$(jq -r .repository.name <<< $JSON)
|
|
||||||
CLONE_URL=$(jq -r .repository.clone_url <<< $JSON)
|
|
||||||
REPO_BRANCH=$(jq -r .ref <<< $JSON | cut -d'/' -f3)
|
|
||||||
SSH_OPTIONS='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
|
|
||||||
|
|
||||||
for INTEGRATION in "$(cat $CONFIG_PATH | jq -r '.ci | values[]')"
|
|
||||||
do
|
|
||||||
[[ $(jq -r '.repo' <<< $INTEGRATION) = "$REPO_NAME" ]] || continue
|
|
||||||
[[ $(jq -r '.branch' <<< $INTEGRATION) = "$REPO_BRANCH" ]] || continue
|
|
||||||
|
|
||||||
HOSTNAME=$(jq -r '.hostname' <<< $INTEGRATION)
|
|
||||||
DEST_PATH=$(jq -r '.path' <<< $INTEGRATION)
|
|
||||||
DEST_GROUP=$(jq -r '.group' <<< $INTEGRATION)
|
|
||||||
|
|
||||||
[[ -z "$HOSTNAME" ]] || [[ -z "$DEST_PATH" ]] || [[ -z "$DEST_GROUP" ]] && exit 5
|
|
||||||
|
|
||||||
cd ~
|
|
||||||
rm -rf "$REPO_NAME"
|
|
||||||
git clone "$CLONE_URL" "$REPO_NAME"
|
|
||||||
|
|
||||||
ssh $SSH_OPTIONS "build-ci@$HOSTNAME" "find \"$DEST_PATH\" -mindepth 1 -delete"
|
|
||||||
scp -r $SSH_OPTIONS "$REPO_NAME"/* "build-ci@$HOSTNAME:$DEST_PATH"
|
|
||||||
ssh $SSH_OPTIONS "build-ci@$HOSTNAME" "sudo chown -R build-ci:$DEST_GROUP $(printf "%q" "$DEST_PATH")"
|
|
||||||
done
|
|
||||||
|
|
@ -21,12 +21,4 @@ files = {
|
||||||
'download_server': node.metadata.get('build-server/download_server_ip'),
|
'download_server': node.metadata.get('build-server/download_server_ip'),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'/opt/build-server/strategies/ci': {
|
|
||||||
'content_type': 'mako',
|
|
||||||
'owner': 'build-server',
|
|
||||||
'mode': '0777', # FIXME
|
|
||||||
'context': {
|
|
||||||
'config_path': '/etc/build-server.json',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,25 +34,6 @@ def download_server(metadata):
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@metadata_reactor.provides(
|
|
||||||
'build-server',
|
|
||||||
)
|
|
||||||
def ci(metadata):
|
|
||||||
return {
|
|
||||||
'build-server': {
|
|
||||||
'ci': {
|
|
||||||
f'{repo}@{other_node.name}': {
|
|
||||||
'hostname': other_node.metadata.get('hostname'),
|
|
||||||
'repo': repo,
|
|
||||||
**options,
|
|
||||||
}
|
|
||||||
for other_node in repo.nodes
|
|
||||||
if other_node.has_bundle('build-ci')
|
|
||||||
for repo, options in other_node.metadata.get('build-ci').items()
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
@metadata_reactor.provides(
|
@metadata_reactor.provides(
|
||||||
'nginx/vhosts',
|
'nginx/vhosts',
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
if not node.has_bundle('build-ci'):
|
|
||||||
raise Exception('lownercrew needs bundle build-ci')
|
|
||||||
|
|
||||||
|
|
||||||
defaults = {
|
|
||||||
'build-ci': {
|
|
||||||
'lonercrew': {
|
|
||||||
'path': '/opt/lonercrew',
|
|
||||||
'group': 'www-data',
|
|
||||||
'branch': 'master',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@metadata_reactor.provides(
|
|
||||||
'nginx/vhosts',
|
|
||||||
)
|
|
||||||
def nginx(metadata):
|
|
||||||
return {
|
|
||||||
'nginx': {
|
|
||||||
'vhosts': {
|
|
||||||
'lonercrew.io': {
|
|
||||||
'content': 'lonercrew/vhost.conf',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
server {
|
|
||||||
listen 443 ssl http2;
|
|
||||||
listen [::]:443 ssl http2;
|
|
||||||
|
|
||||||
ssl_certificate /var/lib/dehydrated/certs/${server_name}/fullchain.pem;
|
|
||||||
ssl_certificate_key /var/lib/dehydrated/certs/${server_name}/privkey.pem;
|
|
||||||
|
|
||||||
server_name ${server_name};
|
|
||||||
index index.html;
|
|
||||||
root /opt/lonercrew;
|
|
||||||
}
|
|
||||||
|
|
@ -12,7 +12,6 @@
|
||||||
],
|
],
|
||||||
'bundles': [
|
'bundles': [
|
||||||
'bind-acme',
|
'bind-acme',
|
||||||
'build-ci',
|
|
||||||
'download-server',
|
'download-server',
|
||||||
'islamicstate.eu',
|
'islamicstate.eu',
|
||||||
#'nginx-rtmps',
|
#'nginx-rtmps',
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue